Revision: 76377
          http://sourceforge.net/p/brlcad/code/76377
Author:   starseeker
Date:     2020-07-20 19:45:30 +0000 (Mon, 20 Jul 2020)
Log Message:
-----------
Merge organization of regression tests from bioh branch into trunk - r76368 
through r76376

Modified Paths:
--------------
    brlcad/trunk/misc/CMake/CMakeLists.txt
    brlcad/trunk/regress/CMakeLists.txt
    brlcad/trunk/regress/burst/CMakeLists.txt
    brlcad/trunk/regress/fuzz/CMakeLists.txt
    brlcad/trunk/regress/library.sh
    brlcad/trunk/regress/mged/CMakeLists.txt
    brlcad/trunk/regress/nurbs/CMakeLists.txt

Added Paths:
-----------
    brlcad/trunk/regress/asc/CMakeLists.txt
    brlcad/trunk/regress/asc/asc.sh
    brlcad/trunk/regress/asc/asc2dsp.sh
    brlcad/trunk/regress/bots/
    brlcad/trunk/regress/comgeom/
    brlcad/trunk/regress/dsp/CMakeLists.txt
    brlcad/trunk/regress/dsp/dsp.sh
    brlcad/trunk/regress/gqa/
    brlcad/trunk/regress/iges/
    brlcad/trunk/regress/lights/
    brlcad/trunk/regress/mged/mged.sh
    brlcad/trunk/regress/mged/mged_test.sh
    brlcad/trunk/regress/moss/
    brlcad/trunk/regress/nirt/CMakeLists.txt
    brlcad/trunk/regress/nirt/nirt.sh
    brlcad/trunk/regress/red/
    brlcad/trunk/regress/rtedge/
    brlcad/trunk/regress/shaders/
    brlcad/trunk/regress/solids/
    brlcad/trunk/regress/spdi/
    brlcad/trunk/regress/weight/

Removed Paths:
-------------
    brlcad/trunk/misc/CMake/Fuzzer.cmake
    brlcad/trunk/regress/analyze.asc
    brlcad/trunk/regress/asc.sh
    brlcad/trunk/regress/asc2dsp.sh
    brlcad/trunk/regress/bots.sh
    brlcad/trunk/regress/comgeom.sh
    brlcad/trunk/regress/dsp.sh
    brlcad/trunk/regress/gqa.sh
    brlcad/trunk/regress/iges.sh
    brlcad/trunk/regress/lights.cmake
    brlcad/trunk/regress/lights.ref.pix
    brlcad/trunk/regress/lights.sh
    brlcad/trunk/regress/mged.sh
    brlcad/trunk/regress/mged_test.sh
    brlcad/trunk/regress/moss.ref.pix
    brlcad/trunk/regress/moss.sh
    brlcad/trunk/regress/nirt.sh
    brlcad/trunk/regress/red.sh
    brlcad/trunk/regress/rtedge.ref.pix.gz
    brlcad/trunk/regress/rtedge.ref2.pix.gz
    brlcad/trunk/regress/rtedge.ref3.pix.gz
    brlcad/trunk/regress/rtedge.ref4.pix.gz
    brlcad/trunk/regress/rtedge.ref5.pix.gz
    brlcad/trunk/regress/rtedge.sh
    brlcad/trunk/regress/shaders.eagleCAD-512x438.pix
    brlcad/trunk/regress/shaders.ref.pix
    brlcad/trunk/regress/shaders.sh
    brlcad/trunk/regress/solids.ref.pix
    brlcad/trunk/regress/solids.sh
    brlcad/trunk/regress/solids.simple.ref.pix
    brlcad/trunk/regress/spdi.ref.pix
    brlcad/trunk/regress/spdi.sh
    brlcad/trunk/regress/tgms/
    brlcad/trunk/regress/weight.sh

Property Changed:
----------------
    brlcad/trunk/
    brlcad/trunk/regress/

Index: brlcad/trunk
===================================================================
--- brlcad/trunk        2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk        2020-07-20 19:45:30 UTC (rev 76377)

Property changes on: brlcad/trunk
___________________________________________________________________
Modified: svn:mergeinfo
## -1,5 +1,5 ##
 
/brlcad/branches/RELEASE:57439,57447-57860,69901-69913,70323-70333,71915-72242,72525-72534,72826-72858,74376-74454,74964-75140,75372-75685
-/brlcad/branches/bioh:75720-75736,75740-75742,75860-75891,75894-75986,76088-76153,76355-76365
+/brlcad/branches/bioh:75720-75736,75740-75742,75860-75891,75894-75986,76088-76153,76355-76365,76368-76376
 
/brlcad/branches/brep-debug:61373,61375,61404,61427,61429,61470,61544,61567,61576,61999,62018,62094,62098,62107,62117,62406,62416-62519,62521-62584,62593-62614,62623,62658,62660-62674,62681-62771,62876,62901,62907,62910,62925,62928,62931-63025,63027,63051,63054-63056,63069,63071-63073,63122,63160-63161,63165,63171,63184,63187,63189-63190,63193-63196,63200,63202,63205-63210,63213,63219-63225,63232-63233,63236,63238,63338,63350-63353,63481,63618,63669,64173-64174,64176-64177,64229-64233,64242,64244,64360-64362,65165,65245,65249,65334,65833-65834,66370-66375,66931-66932,66934,67012-67015,67018-67019,67021-67022,67406,67740,67746-67748,67950,67952,68144-68145,68636,68640-68643,68820,69081,69109,69168,69206,69289,69346,69460-69461,69582-69583,69719-69721,69857-69859,69927,69995-69996,70148-70149,70347-70349,70377,70526-70527,71006-71007,71009-71022,71046-71047,71049,71096-71100
 /brlcad/branches/bullet:62518
 /brlcad/branches/cmake:43219
Modified: brlcad/trunk/misc/CMake/CMakeLists.txt
===================================================================
--- brlcad/trunk/misc/CMake/CMakeLists.txt      2020-07-20 15:43:30 UTC (rev 
76376)
+++ brlcad/trunk/misc/CMake/CMakeLists.txt      2020-07-20 19:45:30 UTC (rev 
76377)
@@ -49,7 +49,6 @@
   FindX11.cmake
   FindXMLLINT.cmake
   FindXSLTPROC.cmake
-  Fuzzer.cmake
   NSIS.template.in
   NSIS_silent.template.in
   OpenVDBUtils.cmake

Deleted: brlcad/trunk/misc/CMake/Fuzzer.cmake
===================================================================
--- brlcad/trunk/misc/CMake/Fuzzer.cmake        2020-07-20 15:43:30 UTC (rev 
76376)
+++ brlcad/trunk/misc/CMake/Fuzzer.cmake        2020-07-20 19:45:30 UTC (rev 
76377)
@@ -1,65 +0,0 @@
-#                    F U Z Z E R . C M A K E
-# BRL-CAD
-#
-# Copyright (c) 2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-
-include(CheckCXXCompilerFlag)
-
-
-# check whether fuzzing support is available.  sets HAVE_FUZZER.
-function(brlcad_check_fuzzer)
-  set(CMAKE_REQUIRED_FLAGS -fsanitize=fuzzer)
-  check_cxx_compiler_flag(-fsanitize=fuzzer HAVE_FUZZER)
-  set(HAVE_FUZZER ${HAVE_FUZZER} PARENT_SCOPE)
-endfunction(brlcad_check_fuzzer)
-
-
-# add fuzzing flags to the compile and link flags of a given target.
-function(brlcad_add_fuzzer target)
-  brlcad_check_fuzzer()
-  if (NOT ${HAVE_FUZZER})
-    message(SEND_ERROR "Attempting to build fuzz targets with an unsupported 
compiler (expecting clang)")
-  endif (NOT ${HAVE_FUZZER})
-
-  target_compile_options(${target} PRIVATE -fsanitize=fuzzer)
-  target_link_options(${target} PRIVATE -fsanitize=fuzzer)
-endfunction(brlcad_add_fuzzer)
-
-
-# Local Variables:
-# tab-width: 8
-# mode: cmake
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=2 tabstop=8

Index: brlcad/trunk/regress
===================================================================
--- brlcad/trunk/regress        2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress        2020-07-20 19:45:30 UTC (rev 76377)

Property changes on: brlcad/trunk/regress
___________________________________________________________________
Modified: svn:mergeinfo
## -1,5 +1,5 ##
 
/brlcad/branches/RELEASE/regress:57439,57447-57860,69901-69913,71917-72242,72525-72534,72826-72858,74376-74454,75372-75681
-/brlcad/branches/bioh/regress:75860-75891,75894-75986,76088-76153,76355-76365
+/brlcad/branches/bioh/regress:75860-75891,75894-75986,76088-76153,76355-76365,76368-76376
 
/brlcad/branches/brep-debug/regress:61373,61375,61404,61427,61429,61470,61544,61567,61576,61999,62018,62094,62098,62107,62117,62406,62416-62519,62521-62584,62593-62614,62623,62658,62660-62674,62681-62771,62876,62901,62907,62910,62925,62928,62931-63025,63027,63051,63054-63056,63069,63071-63073,63122,63160-63161,63165,63171,63184,63187,63189-63190,63193-63196,63200,63202,63205-63210,63213,63219-63225,63232-63233,63236,63238,63338,63350-63353,63481,63618,63669,64173-64174,64176-64177,64229-64233,64242,64244,64360-64362,65165,65245,65249,65334,65833-65834,66370-66375,66931-66932,66934,67012-67015,67018-67019,67021-67022,67406,67740,67746-67748,67950,67952,68144-68145,68636,68640-68643,68820,69081,69109,69206,69289,69346,69460-69461,69582-69583,69719-69721,69857-69859,69927
 /brlcad/branches/bullet/regress:62518
 /brlcad/branches/cmake/regress:43219
Modified: brlcad/trunk/regress/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/CMakeLists.txt 2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/CMakeLists.txt 2020-07-20 19:45:30 UTC (rev 76377)
@@ -12,108 +12,93 @@
 else (CMAKE_CONFIGURATION_TYPES)
   add_custom_target(regress COMMAND ${CMAKE_CTEST_COMMAND} -L Regression 
--output-on-failure --output-log "${CMAKE_BINARY_DIR}/regress_output.log" 
${JFLAG})
 endif (CMAKE_CONFIGURATION_TYPES)
+DISTCLEAN(${CMAKE_BINARY_DIR}/regress_output.log)
 set_target_properties(regress PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
 set_target_properties(regress PROPERTIES FOLDER "BRL-CAD Regression Tests")
 
-# Image Conversion Regression Tests
-add_subdirectory(icv)
+# ASC file Conversion Tests
+add_subdirectory(asc)
 
-# Geometry Editing Library Regression Tests
-add_subdirectory(ged)
+# Bag of Triangles Tests
+add_subdirectory(bots)
 
-# Geometry Conversion Regression Tests
-add_subdirectory(gcv)
-
-# NURBS Regression Tests
-add_subdirectory(nurbs)
-
-# libpkg Regression Tests
-add_subdirectory(pkg)
-
 # Burst Regression Tests
 add_subdirectory(burst)
 
-# RtWizard Image Generation Regression Tests
-add_subdirectory(rtwizard)
+# comgeom Conversion Tests
+add_subdirectory(comgeom)
 
-# MGED command tests
-add_subdirectory(mged)
+# DSP Regression Tests
+add_subdirectory(dsp)
 
-# Fuzz tests
-include(Fuzzer)
-brlcad_check_fuzzer()
-if (${HAVE_FUZZER})
-  add_subdirectory(fuzz)
-endif (${HAVE_FUZZER})
+# Fuzz tests (if supported by the compiler)
+add_subdirectory(fuzz)
 
+# Image Conversion Regression Tests
+add_subdirectory(icv)
+
 # gchecker tests
 add_subdirectory(gchecker)
 
-# License check
-add_subdirectory(licenses)
+# Geometry Editing Library Regression Tests
+add_subdirectory(ged)
 
-# Repository check
-add_subdirectory(repository)
+# Geometry Conversion Regression Tests
+add_subdirectory(gcv)
 
-# Simulation of a 3rd party BRL-CAD library client code
-add_subdirectory(user)
+# GQA Regression Tests
+add_subdirectory(gqa)
 
-if(SH_EXEC)
+# IGES Regression Tests
+add_subdirectory(iges)
 
-  if (TARGET mged AND TARGET asc2g)
-    add_test(NAME regress-moss COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/moss.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-moss "rt;asc2g;pixdiff;pix-png;png-pix" 
TEST_DEFINED)
+# License check
+add_subdirectory(licenses)
 
-    add_test(NAME regress-lights COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/lights.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-lights "rt;asc2g;pixdiff" TEST_DEFINED)
+# light tests
+add_subdirectory(lights)
 
-    add_test(NAME regress-solids COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/solids.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-solids "rt;mged;pixdiff;asc2pix;gencolor" 
TEST_DEFINED)
+# MGED command tests
+add_subdirectory(mged)
 
-    add_test(NAME regress-shaders COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/shaders.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-shaders "rt;mged;pixdiff;gencolor" 
TEST_DEFINED)
+# moss.g Regression Tests
+add_subdirectory(moss)
 
-    add_test(NAME regress-spdi COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/spdi.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-spdi "rt;mged;pixdiff" TEST_DEFINED)
+# NIRT Regression Tests
+add_subdirectory(nirt)
 
-    add_test(NAME regress-rtedge COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/rtedge.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-rtedge "rt;rtedge;pixdiff;asc2g" 
TEST_DEFINED)
+# NURBS Regression Tests
+add_subdirectory(nurbs)
 
-    add_test(NAME regress-iges COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/iges.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-iges "iges-g;g-iges;mged;asc2g" 
TEST_DEFINED)
+# libpkg Regression Tests
+add_subdirectory(pkg)
 
-    add_test(NAME regress-weight COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/weight.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-weight "rtweight;mged" TEST_DEFINED)
+# Region EDit (red) Regression Tests
+add_subdirectory(red)
 
-    add_test(NAME regress-gqa COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/gqa.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-gqa "gqa;mged" TEST_DEFINED)
+# Repository check
+add_subdirectory(repository)
 
-    add_test(NAME regress-bots COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/bots.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-bots "mged;pixdiff;rt" TEST_DEFINED)
+# rtedge Regression Tests
+add_subdirectory(rtedge)
 
-    add_test(NAME regress-mged COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/mged.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-mged mged TEST_DEFINED)
+# RtWizard Image Generation Regression Tests
+add_subdirectory(rtwizard)
 
-    add_test(NAME regress-red COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/red.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-red mged TEST_DEFINED)
+# Simulation of a 3rd party BRL-CAD library client code
+add_subdirectory(user)
 
-    add_test(NAME regress-nirt COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/nirt.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-nirt "mged;nirt" TEST_DEFINED)
+# solids Regression Tests
+add_subdirectory(solids)
 
-    add_test(NAME regress-comgeom COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/comgeom.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-comgeom "mged;asc2g;vdeck;comgeom-g" 
TEST_DEFINED)
+# shaders Regression Tests
+add_subdirectory(shaders)
 
-    add_test(NAME regress-dsp COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/dsp.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-dsp "mged;cv;asc2pix;rt;pix-bw" 
TEST_DEFINED)
+# rtweight command tests
+add_subdirectory(weight)
 
-    add_test(NAME regress-asc COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/asc.sh" ${CMAKE_SOURCE_DIR})
-    BRLCAD_REGRESSION_TEST(regress-asc "asc2g;g2asc;gdiff;dbupgrade" 
TEST_DEFINED)
+if(SH_EXEC)
 
-  endif (TARGET mged AND TARGET asc2g)
-
-  add_test(NAME regress-asc2dsp COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/asc2dsp.sh" ${CMAKE_SOURCE_DIR})
-  BRLCAD_REGRESSION_TEST(regress-asc2dsp "cv;asc2pix;pix-bw;asc2dsp" 
TEST_DEFINED)
-
   add_test(NAME regress-usage COMMAND ${SH_EXEC} 
"${CMAKE_SOURCE_DIR}/regress/usage.sh" ${CMAKE_SOURCE_DIR})
   BRLCAD_REGRESSION_TEST(regress-usage "rt" STAND_ALONE TEST_DEFINED)
 
@@ -124,392 +109,13 @@
 endif(SH_EXEC)
 
 CMAKEFILES(
-  analyze.asc
-  asc.sh
-  asc/v4.g
-  asc2dsp.sh
-  bots.sh
-  comgeom.sh
-  dsp.sh
-  dsp/asc2dsp-new.asc
-  dsp/asc2dsp-old.asc
-  dsp/dsp-1-1.asc
-  dsp/dsp-1-2.asc
-  dsp/dsp-2-1.asc
-  dsp/dsp-2-2.asc
-  dsp/dsp-2-3.asc
-  dsp/dsp-2-4.asc
-  dsp/dsp-2-5.asc
-  dsp/dsp-3-1.asc
-  dsp/dsp-3-2.asc
-  dsp/dsp-3-3.asc
-  dsp/dsp-3-4.asc
-  dsp/dsp-3-5.asc
-  dsp/dsp-3-6.asc
-  dsp/dsp-3-7.asc
-  dsp/dsp-3-8.asc
-  dsp/dsp-common.sh
-  dsp/run-dsp-case-set-0.sh
-  dsp/run-dsp-case-set-1.sh
-  dsp/run-dsp-case-set-2.sh
-  dsp/run-dsp-case-set-3.sh
   flawfinder.sh
-  fuzz/CMakeLists.txt
-  fuzz/fuzz_ged.cpp
-  fuzz/fuzz_test1.cxx
-  fuzz/run.sh
   g-dot.sh
   g-nff.sh
-  gqa.sh
-  iges.sh
   library.sh
-  lights.ref.pix
-  lights.cmake
-  lights.sh
-  mged.sh
-  mged_test.sh
-  moss.ref.pix
-  moss.sh
-  nirt.sh
-  nirt/ovlps.g
-  red.sh
-  rtedge.ref.pix.gz
-  rtedge.ref2.pix.gz
-  rtedge.ref3.pix.gz
-  rtedge.ref4.pix.gz
-  rtedge.ref5.pix.gz
-  rtedge.sh
-  shaders.eagleCAD-512x438.pix
-  shaders.ref.pix
-  shaders.sh
-  solids.ref.pix
-  solids.sh
-  solids.simple.ref.pix
-  spdi.ref.pix
-  spdi.sh
-  tgms/comgeom.cg
-  tgms/comgeom.tgt-1-v4-documented.cg
-  tgms/comgeom.tgt-1-v4.cg
-  tgms/havoc.g.gz
-  tgms/m35.asc.gz
-  tgms/m35.cg.gz
-  tgms/solids.dsp.dat
-  tgms/solids.mged
-  tgms/solids.simple.mged
   usage.sh
-  weight.sh
   )
 
-# list of temporary files
-set(regress_outfiles
-  .density
-  .density.weight1
-  asc2dsp.log
-  asc2dsp.new.dsp
-  asc2dsp.old.bw
-  asc2dsp.old.dsp
-  bots.diff.log
-  bots.diff.pix
-  bots.g
-  bots.lh.pix
-  bots.log
-  bots.no.pix
-  bots.rh.pix
-  bots.rl.diff.pix
-  bots.rn.diff.pix
-  bots.rs.diff.pix
-  bots.sph.pix
-  bots.sync.pix
-  comgeom.log
-  comgeom.m35-baseline.cg
-  comgeom.m35.asc
-  comgeom.m35.cg
-  comgeom.m35.g
-  comgeom.t-v4.g
-  comgeom.t-v5.g
-  density_table.txt
-  dsp-2-1.bw
-  dsp-2-1.dsp
-  dsp-2-1.g
-  dsp-2-1.log
-  dsp-2-1.pix
-  dsp-2-1.rt.pix
-  dsp-2-2.bw
-  dsp-2-2.dsp
-  dsp-2-2.g
-  dsp-2-2.log
-  dsp-2-2.pix
-  dsp-2-2.rt.pix
-  dsp-2-3.bw
-  dsp-2-3.dsp
-  dsp-2-3.g
-  dsp-2-3.log
-  dsp-2-3.pix
-  dsp-2-3.rt.pix
-  dsp-2-4.bw
-  dsp-2-4.dsp
-  dsp-2-4.g
-  dsp-2-4.log
-  dsp-2-4.pix
-  dsp-2-4.rt.pix
-  dsp-2-5.bw
-  dsp-2-5.dsp
-  dsp-2-5.g
-  dsp-2-5.log
-  dsp-2-5.pix
-  dsp-2-5.rt.pix
-  dsp-3-1.bw
-  dsp-3-1.dsp
-  dsp-3-1.g
-  dsp-3-1.log
-  dsp-3-1.pix
-  dsp-3-1.rt.pix
-  dsp-3-2.bw
-  dsp-3-2.dsp
-  dsp-3-2.g
-  dsp-3-2.log
-  dsp-3-2.pix
-  dsp-3-2.rt.pix
-  dsp-3-3.bw
-  dsp-3-3.dsp
-  dsp-3-3.g
-  dsp-3-3.log
-  dsp-3-3.pix
-  dsp-3-3.rt.pix
-  dsp-3-4.bw
-  dsp-3-4.dsp
-  dsp-3-4.g
-  dsp-3-4.log
-  dsp-3-4.pix
-  dsp-3-4.rt.pix
-  dsp-3-5.bw
-  dsp-3-5.dsp
-  dsp-3-5.g
-  dsp-3-5.log
-  dsp-3-5.pix
-  dsp-3-5.rt.pix
-  dsp-3-6.bw
-  dsp-3-6.dsp
-  dsp-3-6.g
-  dsp-3-6.log
-  dsp-3-6.pix
-  dsp-3-6.rt.pix
-  dsp-3-7.bw
-  dsp-3-7.dsp
-  dsp-3-7.g
-  dsp-3-7.log
-  dsp-3-7.pix
-  dsp-3-7.rt.pix
-  dsp-3-8.bw
-  dsp-3-8.dsp
-  dsp-3-8.g
-  dsp-3-8.log
-  dsp-3-8.pix
-  dsp-3-8.rt.pix
-  dsp.log
-  gqa.adj_air.plot3
-  gqa.exp_air.plot3
-  gqa.g
-  gqa.gaps.plot3
-  gqa.log
-  gqa.mged
-  gqa.overlaps.plot3
-  gqa.volume.plot3
-  iges.export.iges
-  iges.export.stdout.iges
-  iges.g
-  iges.import.export.iges
-  iges.import.g
-  iges.import2.export.iges
-  iges.import2.g
-  iges.import3.export.iges
-  iges.import3.g
-  iges.log
-  iges.m35.asc
-  iges.m35.g
-  iges.m35.r516.iges
-  lights.asc
-  lights.diff.pix
-  lights.g
-  lights.log
-  lights.pix
-  mged.g
-  mged.log
-  moss.asc
-  moss.g
-  moss.log
-  moss.pix
-  moss.pix.diff
-  moss.pix.png
-  moss.pix.png.pix
-  moss.roundtrip.diff
-  nirt.g
-  nirt.log
-  nirt.mged
-  nirt.out
-  nirt.ref
-  red.air.empty.out
-  red.air.empty.out.new
-  red.air.safe.out
-  red.air.safe.out.new
-  red.air.safe.out.test
-  red.air.unsafe.out
-  red.air.unsafe.out.new
-  red.air.unsafe.out.test
-  red.color.delim.out
-  red.color.delim.out.new
-  red.color.delim.out.test
-  red.color.empty.out
-  red.color.empty.out.new
-  red.color.safe.out
-  red.color.safe.out.new
-  red.color.safe.out.test
-  red.color.unsafe.out
-  red.color.unsafe.out.new
-  red.edit.sh
-  red.g
-  red.hps.r.out
-  red.log
-  red.los.empty.out
-  red.los.empty.out.new
-  red.los.safe.out
-  red.los.safe.out.new
-  red.los.safe.out.test
-  red.los.unsafe.out
-  red.los.unsafe.out.new
-  red.los.unsafe.out.test
-  red.material_id.empty.out
-  red.material_id.empty.out.new
-  red.material_id.safe.out
-  red.material_id.safe.out.new
-  red.material_id.safe.out.test
-  red.material_id.unsafe.out
-  red.material_id.unsafe.out.new
-  red.material_id.unsafe.out.test
-  red.matrix.noop.out
-  red.matrix.noop.out.new
-  red.name.empty.out
-  red.name.empty.out.new
-  red.name.emptyedit.out
-  red.name.emptyedit.out.new
-  red.name.safe.out
-  red.name.safe.out.new
-  red.name.safe.out.test
-  red.name.unsafe.out
-  red.name.unsafe.out.new
-  red.name.unsafe.out.test
-  red.region.edit-comb.out
-  red.region.edit-comb.out.new
-  red.region.edit-comb.out.test
-  red.region.edit-comb.out.test2
-  red.region.empty.out
-  red.region.empty.out.new
-  red.region.no.out
-  red.region.no.out.new
-  red.region.one.out
-  red.region.one.out.new
-  red.region.yes.out
-  red.region.yes.out.new
-  red.region.zero.out
-  red.region.zero.out.new
-  red.region_id.empty.out
-  red.region_id.empty.out.new
-  red.region_id.safe.out
-  red.region_id.safe.out.new
-  red.region_id.safe.out.test
-  red.region_id.unsafe.out
-  red.region_id.unsafe.out.new
-  red.region_id.unsafe.out.test
-  red.shader.empty.out
-  red.shader.empty.out.new
-  red.shader.safe.out
-  red.shader.safe.out.new
-  red.shader.safe.out.test
-  red.shader.unsafe.out
-  red.shader.unsafe.out.new
-  red.shader.unsafe.out.test
-  red.sph.r.out
-  red.sph_rot.c.out
-  red.tree.empty.out
-  red.tree.empty.out.new
-  red.tree.safe.out
-  red.tree.safe.out.new
-  red.tree.safe.out.test
-  red.tree.unsafe.out
-  red.tree.unsafe.out.new
-  red.virgin.out
-  red.virgin.out.new
-  region_ids
-  regions
-  rtedge.2.pix
-  rtedge.3.pix
-  rtedge.4.pix
-  rtedge.5.pix
-  rtedge.diff.pix
-  rtedge.diff2.pix
-  rtedge.diff3.pix
-  rtedge.diff4.pix
-  rtedge.diff5.pix
-  rtedge.havoc.g
-  rtedge.log
-  rtedge.pix
-  rtedge.ref.pix
-  rtedge.ref2.pix
-  rtedge.ref3.pix
-  rtedge.ref4.pix
-  rtedge.ref5.pix
-  shaders.ebm.bw
-  shaders.ell_2.prj
-  shaders.g
-  shaders.half.prj
-  shaders.log
-  shaders.mged
-  shaders.rt
-  shaders.rt.diff.pix
-  shaders.rt.log
-  shaders.rt.pix
-  solids
-  solids.dsp.pix
-  solids.ebm.bw
-  solids.g
-  solids.log
-  solids.pix.diff
-  solids.rt
-  solids.rt.log
-  solids.rt.pix
-  solids.simple.g
-  solids.simple.pix.diff
-  solids.simple.rt
-  solids.simple.rt.log
-  solids.simple.rt.pix
-  spdi.diff.pix
-  spdi.g
-  spdi.log
-  spdi.mged
-  spdi.pix
-  weight.g
-  weight.log
-  weight.mged
-  weight.out
-  weight.out_ns
-  weight.ref
-  weight.ref_ns
-  weight.test2.g
-  weight.test2.mged
-  weight.test2.out
-  weight.test2.out_ns
-  weight.test2.ref
-  weight.test2.ref_ns
-  )
-
-foreach(outfile ${regress_outfiles})
-  set(regress_outfiles_fullpaths ${regress_outfiles_fullpaths} 
"${CMAKE_CURRENT_BINARY_DIR}/${outfile}")
-endforeach(outfile ${regress_outfiles})
-set(regress_outfiles_fullpaths ${regress_outfiles_fullpaths} 
"${CMAKE_BINARY_DIR}/regress_output.log")
-
-set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES 
"${regress_outfiles_fullpaths}")
-DISTCLEAN(${regress_outfiles_fullpaths})
-
 CMAKEFILES(CMakeLists.txt)
 
 # Local Variables:

Deleted: brlcad/trunk/regress/analyze.asc
===================================================================
--- brlcad/trunk/regress/analyze.asc    2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/analyze.asc    2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,28 +0,0 @@
-title {Untitled BRL-CAD Database}
-units mm
-put {extrude} extrude V {0 0 0} H {0 0 4000} A {1 0 0} B {0 1 0} S skt_1
-put {arb8} arb8 V1 {1000 -1000 -1000}  V2 {1000 1000 -1000}  V3 {1000 1000 
1000}  V4 {1000 -1000 1000}  V5 {-1000 -1000 -1000}  V6 {-1000 1000 -1000}  V7 
{-1000 1000 1000}  V8 {-1000 -1000 1000} 
-put {arb7} arb8 V1 {1000 -1000 -500}  V2 {1000 1000 -500}  V3 {1000 1000 1500} 
 V4 {1000 -1000 500}  V5 {-1000 -1000 -500}  V6 {-1000 1000 -500}  V7 {-1000 
1000 500}  V8 {-1000 -1000 -500} 
-put {arb6} arb8 V1 {1000 -1000 -1000}  V2 {1000 1000 -1000}  V3 {1000 1000 
1000}  V4 {1000 -1000 1000}  V5 {-1000 0 -1000}  V6 {-1000 0 -1000}  V7 {-1000 
0 1000}  V8 {-1000 0 1000} 
-put {arb5} arb8 V1 {1000 -1000 -1000}  V2 {1000 1000 -1000}  V3 {1000 1000 
1000}  V4 {1000 -1000 1000}  V5 {-1000 0 0}  V6 {-1000 0 0}  V7 {-1000 0 0}  V8 
{-1000 0 0} 
-put {arb4} arb8 V1 {1000 -1000 -1000}  V2 {1000 1000 -1000}  V3 {1000 1000 
1000}  V4 {1000 1000 1000}  V5 {-1000 1000 -1000}  V6 {-1000 1000 -1000}  V7 
{-1000 1000 -1000}  V8 {-1000 1000 -1000} 
-put {tor} tor V {0 0 0}  H {1 0 0}  r_a 1600 r_h 400
-put {rpp} arb8 V1 {10 0 0}  V2 {10 10 0}  V3 {10 10 10}  V4 {10 0 10}  V5 {0 0 
0}  V6 {0 10 0}  V7 {0 10 10}  V8 {0 0 10} 
-put {ars} ars NC 3 PPC 3 C0 { { 0 0 0 } { 0 0 0 } { 0 0 0 } } C1 { { 0 0 2000 
} { 2000 0 2000 } { 2000 2000 2000 } } C2 { { 0 0 4000 } { 0 0 4000 } { 0 0 
4000 } }
-put {bot} bot mode volume orient no flags {} V { { 0 0 0 } { -2000 2000 -4000 
} { -2000 -2000 -4000 } { 2000 2000 -4000 }} F { { 0 1 3 } { 0 1 2 } { 0 2 3 } 
{ 1 2 3 }}
-put {metaball} metaball 1 1 {{-1 0 0 1 1}{1 0 0 1 1}}
-put {eto} eto V {0 0 0}  N {0 0 1}  C {400 0 400}  r 1600 r_d 200
-put {trc} tgc V {0 0 -2000}  H {0 0 4000}  A {1000 0 0}  B {0 1000 0}  C {500 
0 0}  D {0 500 0} 
-put {nmg} nmg V { { 0 0 0 } }
-put {rpc} rpc V {0 -1000 -2000}  H {0 0 4000}  B {0 2000 0}  r 1000
-put {tgc} tgc V {0 0 -2000}  H {0 0 4000}  A {1000 0 0}  B {0 500 0}  C {500 0 
0}  D {0 1000 0} 
-put {rhc} rhc V {0 -1000 -1000}  H {0 0 2000}  B {0 2000 0}  r 1000 c 400
-put {tec} tgc V {0 0 -2000}  H {0 0 4000}  A {1000 0 0}  B {0 500 0}  C {500 0 
0}  D {0 250 0} 
-put {rec} tgc V {0 0 -2000}  H {0 0 4000}  A {1000 0 0}  B {0 500 0}  C {1000 
0 0}  D {0 500 0} 
-put {rcc} tgc V {0 0 -2000}  H {0 0 4000}  A {1000 0 0}  B {0 1000 0}  C {1000 
0 0}  D {0 1000 0} 
-put {skt_1} sketch V {0 0 0} A {1 0 0} B {0 1 0} VL { } SL { }
-put {rppx} arb8 V1 {9 0 0}  V2 {10 10 0}  V3 {10 10 10}  V4 {10 0 10}  V5 {0 0 
0}  V6 {0 10 0}  V7 {0 10 10}  V8 {0 0 10} 
-put {part} part V {0 0 -1000}  H {0 0 2000}  r_v 1000 r_h 500
-put {pipe} pipe V0 { 0 0 -2000 } O0 1000 I0 250 R0 1000 V1 { 0 0 2000 } O1 
1000 I1 250 R1 1000
-put {arbn} arbn N 8 P0 {1 0 0 1000} P1 {-1 0 0 1000} P2 {0 1 0 1000} P3 {0 -1 
0 1000} P4 {0 0 1 1000} P5 {0 0 -1 1000} P6 {0.5773500000000000298427949 
0.5773500000000000298427949 0.5773500000000000298427949 1000} P7 
{-0.5773500000000000298427949 -0.5773500000000000298427949 
-0.5773500000000000298427949 1000}
-put {half} half N {0 0 1}  d 0

Copied: brlcad/trunk/regress/asc/CMakeLists.txt (from rev 76376, 
brlcad/branches/bioh/regress/asc/CMakeLists.txt)
===================================================================
--- brlcad/trunk/regress/asc/CMakeLists.txt                             (rev 0)
+++ brlcad/trunk/regress/asc/CMakeLists.txt     2020-07-20 19:45:30 UTC (rev 
76377)
@@ -0,0 +1,49 @@
+if(SH_EXEC)
+
+  if (TARGET asc2g)
+
+    add_test(NAME regress-asc COMMAND ${SH_EXEC} 
"${CMAKE_CURRENT_SOURCE_DIR}/asc.sh" ${CMAKE_SOURCE_DIR})
+    BRLCAD_REGRESSION_TEST(regress-asc "asc2g;g2asc;gdiff;dbupgrade" 
TEST_DEFINED)
+
+  endif (TARGET asc2g)
+
+  add_test(NAME regress-asc2dsp COMMAND ${SH_EXEC} 
"${CMAKE_CURRENT_SOURCE_DIR}/asc2dsp.sh" ${CMAKE_SOURCE_DIR})
+  BRLCAD_REGRESSION_TEST(regress-asc2dsp "cv;asc2pix;pix-bw;asc2dsp" 
TEST_DEFINED)
+
+endif(SH_EXEC)
+
+CMAKEFILES(
+  asc.sh
+  v4.g
+  asc2dsp.sh
+  )
+
+# list of temporary files
+set(asc_outfiles
+  asc.log
+  asc2dsp.log
+  asc2dsp.new.dsp
+  asc2dsp.old.bw
+  asc2dsp.old.dsp
+  moss_v4.asc
+  moss_v4.g
+  moss_v4_asc_v4.g
+  moss_v4_asc_v4_v5.g
+  moss_v4_asc_v5.g
+  moss_v5.asc
+  moss_v5.g
+  moss_v5_basic.g
+  v4.asc
+  )
+
+set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES 
"${asc_outfiles}")
+DISTCLEAN(${asc_outfiles})
+
+CMAKEFILES(CMakeLists.txt)
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8

Copied: brlcad/trunk/regress/asc/asc.sh (from rev 76376, 
brlcad/branches/bioh/regress/asc/asc.sh)
===================================================================
--- brlcad/trunk/regress/asc/asc.sh                             (rev 0)
+++ brlcad/trunk/regress/asc/asc.sh     2020-07-20 19:45:30 UTC (rev 76377)
@@ -0,0 +1,198 @@
+#!/bin/sh
+#                        A S C . S H
+# BRL-CAD
+#
+# Copyright (c) 2010-2020 United States Government as represented by
+# the U.S. Army Research Laboratory.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# 3. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+###
+
+# Ensure /bin/sh
+export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
+
+# source common library functionality, setting ARGS, NAME_OF_THIS,
+# PATH_TO_THIS, and THIS.
+. "$1/regress/library.sh"
+
+if test "x$LOGFILE" = "x" ; then
+    LOGFILE=`pwd`/asc.log
+    rm -f $LOGFILE
+fi
+log "=== TESTING asc format conversion ==="
+
+A2G="`ensearch asc2g`"
+if test ! -f "$A2G" ; then
+    log "Unable to find asc2g, aborting"
+    exit 1
+fi
+
+G2A="`ensearch g2asc`"
+if test ! -f "$G2A" ; then
+    log "Unable to find g2asc, aborting"
+    exit 1
+fi
+
+GD="`ensearch gdiff`"
+if test ! -f "$GD" ; then
+    log "Unable to find gdiff, aborting"
+    exit 1
+fi
+
+DU="`ensearch dbupgrade`"
+if test ! -f "$DU" ; then
+    log "Unable to find dbupgrade, aborting"
+    exit 1
+fi
+
+# Start by converting v4 moss.asc to a v5 .g file
+log "... convert asc file to v5 .g format"
+ASC1="$1/db/moss.asc"
+G1="moss_v5.g"
+rm -f $G1
+$A2G $ASC1 $G1 2>&1 > $LOGFILE
+
+# Next convert v5 .g file to a v5 asc file
+log "convert v5 .g file to v5 asc format"
+ASC2="moss_v5.asc"
+rm -f $ASC2
+log "$G2A $G1 $ASC2"
+$G2A $G1 $ASC2 2>&1 > $LOGFILE
+
+# convert v5 .g file to a v5 .g file
+log "convert v5 asc file to v5 .g format (simple round trip)"
+GRT="moss_v5_basic.g"
+rm -f $GRT
+log "$A2G $ASC2 $GRT"
+$A2G $ASC2 $GRT 2>&1 > $LOGFILE
+
+# the original v5 .g file and the round-tripped v5 .g file
+# should be identical (apparently except for the color table)
+log "$GD -v $G1 $GRT -F \"! -attr regionid_colortable\""
+$GD -v -F "! -attr regionid_colortable" $G1 $GRT 2>&1 > $LOGFILE
+STATUS=$?
+
+# If that didn't work, don't bother going further - we've got a problem.
+if [ $STATUS -gt 0 ] ; then
+    log "-> basic v5 asc.sh round-trip FAILED, see $LOGFILE"
+    exit $STATUS
+fi
+
+# If the basics work, check v4 and dbupgrade
+
+# Use the undocumented dbupgrade -r to downgrade v5 .g file to a v4 .g file.
+# Not something the user should be doing, hence it remaining deliberately
+# undocumented, but we need it here to get a binary v4 file for testing.
+# asc2g can't write out a v4 asc file from a v5 database, so there's no
+# other way to exercise that code path.
+log "convert v5 .g file to v4 .g format"
+G2="moss_v4.g"
+rm -f $G2
+log "$DU -r $G1 $G2"
+$DU -r $G1 $G2 2>&1 > $LOGFILE
+
+# convert v4 .g file to a v4 asc file
+log "convert v4 .g file to v4 asc format"
+ASC3="moss_v4.asc"
+rm -f $ASC3
+log "$G2A $G2 $ASC3"
+$G2A $G2 $ASC3 2>&1 > $LOGFILE
+
+# convert v4 asc to v5 .g file
+
+log "convert v4 asc file to v5 g format"
+G3="moss_v4_asc_v5.g"
+rm -f $G3
+log "$A2G $ASC3 $G3"
+$A2G $ASC3 $G3 2>&1 > $LOGFILE
+
+# Next, do the downgrade/upgrade cycle on the .g file to test dbupgrade's
+# behavior on a binary v4 .g.
+G4="moss_v4_asc_v4.g"
+G5="moss_v4_asc_v4_v5.g"
+rm -f $G4 $G5
+log "$DU -r $G3 $G4"
+$DU -r $G3 $G4 2>&1 > $LOGFILE
+log "$DU $G4 $G5"
+$DU $G4 $G5 2>&1 > $LOGFILE
+
+# Rather surprisingly, all.g doesn't pass this comparison... not sure
+# why yet...
+#
+#log "$GD -v -t 0.0001 -F \"! -attr regionid_colortable\" $G3 $G5"
+#$GD -v -t 0.0001 -F "! -attr regionid_colortable" $G3 $G5 2>&1 > $LOGFILE
+#STATUS=$?
+# binary dbupdate should't have significantly altered the file.
+#if [ $STATUS -gt 0 ] ; then
+#    log "-> dbupgrade cycle FAILED, see $LOGFILE"
+#    exit $STATUS
+#fi
+
+# After all that, the original v5 .g file and the file produced at the end of
+# all the processing should be identical
+#
+# (Well, unchanged sans a region color table, region_id=-1 on all.g and
+# numerical differences anyway... Accomidate data changes with gdiff
+# filtering.)
+log "$GD -v -t 0.0001 -F \"! -name _GLOBAL ! -attr region_id=-1\" $G1 $G5"
+$GD -v -t 0.0001 -F "! -name _GLOBAL ! -attr region_id=-1" $G1 $G5 2>&1 > 
$LOGFILE
+STATUS=$?
+
+if [ $STATUS -gt 0 ] ; then
+    log "-> asc.sh FAILED, see $LOGFILE"
+    exit $STATUS
+else
+    log "-> asc.sh succeeded"
+fi
+
+# Run a test database with better object coverage through g2asc.
+# Unfortunately, at the moment it looks like this won't round
+# trip.
+#
+G2ASC1="$1/regress/asc/v4.g"
+log "$G2A $G2ASC1 v4.asc"
+$G2A $G2ASC1 v4.asc 2>&1 > $LOGFILE
+STATUS=$?
+# If something went wrong, bail.
+if [ $STATUS -gt 0 ] ; then
+    log "-> g2asc broad object coverage check FAILED, see $LOGFILE"
+    exit $STATUS
+fi
+
+exit $STATUS
+
+# Local Variables:
+# mode: sh
+# tab-width: 8
+# sh-indentation: 4
+# sh-basic-offset: 4
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=4 tabstop=8

Copied: brlcad/trunk/regress/asc/asc2dsp.sh (from rev 76376, 
brlcad/branches/bioh/regress/asc/asc2dsp.sh)
===================================================================
--- brlcad/trunk/regress/asc/asc2dsp.sh                         (rev 0)
+++ brlcad/trunk/regress/asc/asc2dsp.sh 2020-07-20 19:45:30 UTC (rev 76377)
@@ -0,0 +1,121 @@
+#!/bin/sh
+#                      A S C 2 D S P . S H
+# BRL-CAD
+#
+# Copyright (c) 2010-2020 United States Government as represented by
+# the U.S. Army Research Laboratory.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# 3. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+###
+
+# Ensure /bin/sh
+export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
+
+# source common library functionality, setting ARGS, NAME_OF_THIS,
+# PATH_TO_THIS, and THIS.
+. "$1/regress/library.sh"
+
+if test "x$LOGFILE" = "x" ; then
+    LOGFILE=`pwd`/asc2dsp.log
+    rm -f $LOGFILE
+fi
+log "=== TESTING asc2dsp ==="
+
+A2D="`ensearch asc2dsp`"
+if test ! -f "$A2D" ; then
+    log "Unable to find asc2dsp, aborting"
+    exit 1
+fi
+
+CV="`ensearch cv`"
+if test ! -f "$CV" ; then
+    log "Unable to find cv, aborting"
+    exit 1
+fi
+
+A2P="`ensearch asc2pix`"
+if test ! -f "$A2P" ; then
+    log "Unable to find asc2pix, aborting"
+    exit 1
+fi
+
+P2B="`ensearch pix-bw`"
+if test ! -f "$P2B" ; then
+    log "Unable to find pix-bw, aborting"
+    exit 1
+fi
+
+
+BASE1=asc2dsp.old
+BASE2=asc2dsp.new
+
+
+# we generate one dsp file the old way and one the new way--they should be 
identical
+# old first
+log "... convert dsp data file in asc hex format to pix format"
+ASC1="$1/regress/dsp/$BASE1.asc"
+rm -f $BASE1.pix
+$A2P < $ASC1 > $BASE1.pix 2>>$LOGFILE
+
+log "convert pix to bw format"
+rm -f $BASE1.bw
+# take the blue pixel only
+$P2B -B1.0 $BASE1.pix > $BASE1.bw 2>>$LOGFILE
+
+log "convert pix to dsp format"
+rm -f $BASE1.dsp
+run $CV huc nu16 $BASE1.bw $BASE1.dsp
+
+log "convert dsp data file in asc decimal format to dsp format"
+ASC2="$1/regress/dsp/$BASE2.asc"
+rm -f $BASE2.dsp
+run $A2D $BASE2.asc $BASE2.dsp
+
+# the two dsp files should be identical
+run cmp $BASE1.dsp $BASE2.dsp
+STATUS=$?
+
+
+if [ $STATUS -gt 0 ] ; then
+    log "-> asc2dsp.sh FAILED, see $LOGFILE"
+else
+    log "-> asc2dsp.sh succeeded"
+fi
+
+exit $STATUS
+
+# Local Variables:
+# mode: sh
+# tab-width: 8
+# sh-indentation: 4
+# sh-basic-offset: 4
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=4 tabstop=8

Deleted: brlcad/trunk/regress/asc.sh
===================================================================
--- brlcad/trunk/regress/asc.sh 2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/asc.sh 2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,198 +0,0 @@
-#!/bin/sh
-#                        A S C . S H
-# BRL-CAD
-#
-# Copyright (c) 2010-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-
-# Ensure /bin/sh
-export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
-
-# source common library functionality, setting ARGS, NAME_OF_THIS,
-# PATH_TO_THIS, and THIS.
-. "$1/regress/library.sh"
-
-if test "x$LOGFILE" = "x" ; then
-    LOGFILE=`pwd`/asc.log
-    rm -f $LOGFILE
-fi
-log "=== TESTING asc format conversion ==="
-
-A2G="`ensearch asc2g`"
-if test ! -f "$A2G" ; then
-    log "Unable to find asc2g, aborting"
-    exit 1
-fi
-
-G2A="`ensearch g2asc`"
-if test ! -f "$G2A" ; then
-    log "Unable to find g2asc, aborting"
-    exit 1
-fi
-
-GD="`ensearch gdiff`"
-if test ! -f "$GD" ; then
-    log "Unable to find gdiff, aborting"
-    exit 1
-fi
-
-DU="`ensearch dbupgrade`"
-if test ! -f "$DU" ; then
-    log "Unable to find dbupgrade, aborting"
-    exit 1
-fi
-
-# Start by converting v4 moss.asc to a v5 .g file
-log "... convert asc file to v5 .g format"
-ASC1="$1/db/moss.asc"
-G1="moss_v5.g"
-rm -f $G1
-$A2G $ASC1 $G1 2>&1 > $LOGFILE
-
-# Next convert v5 .g file to a v5 asc file
-log "convert v5 .g file to v5 asc format"
-ASC2="moss_v5.asc"
-rm -f $ASC2
-log "$G2A $G1 $ASC2"
-$G2A $G1 $ASC2 2>&1 > $LOGFILE
-
-# convert v5 .g file to a v5 .g file
-log "convert v5 asc file to v5 .g format (simple round trip)"
-GRT="moss_v5_basic.g"
-rm -f $GRT
-log "$A2G $ASC2 $GRT"
-$A2G $ASC2 $GRT 2>&1 > $LOGFILE
-
-# the original v5 .g file and the round-tripped v5 .g file
-# should be identical (apparently except for the color table)
-log "$GD -v $G1 $GRT -F \"! -attr regionid_colortable\""
-$GD -v -F "! -attr regionid_colortable" $G1 $GRT 2>&1 > $LOGFILE
-STATUS=$?
-
-# If that didn't work, don't bother going further - we've got a problem.
-if [ $STATUS -gt 0 ] ; then
-    log "-> basic v5 asc.sh round-trip FAILED, see $LOGFILE"
-    exit $STATUS
-fi
-
-# If the basics work, check v4 and dbupgrade
-
-# Use the undocumented dbupgrade -r to downgrade v5 .g file to a v4 .g file.
-# Not something the user should be doing, hence it remaining deliberately
-# undocumented, but we need it here to get a binary v4 file for testing.
-# asc2g can't write out a v4 asc file from a v5 database, so there's no
-# other way to exercise that code path.
-log "convert v5 .g file to v4 .g format"
-G2="moss_v4.g"
-rm -f $G2
-log "$DU -r $G1 $G2"
-$DU -r $G1 $G2 2>&1 > $LOGFILE
-
-# convert v4 .g file to a v4 asc file
-log "convert v4 .g file to v4 asc format"
-ASC3="moss_v4.asc"
-rm -f $ASC3
-log "$G2A $G2 $ASC3"
-$G2A $G2 $ASC3 2>&1 > $LOGFILE
-
-# convert v4 asc to v5 .g file
-
-log "convert v4 asc file to v5 g format"
-G3="moss_v4_asc_v5.g"
-rm -f $G3
-log "$A2G $ASC3 $G3"
-$A2G $ASC3 $G3 2>&1 > $LOGFILE
-
-# Next, do the downgrade/upgrade cycle on the .g file to test dbupgrade's
-# behavior on a binary v4 .g.
-G4="moss_v4_asc_v4.g"
-G5="moss_v4_asc_v4_v5.g"
-rm -f $G4 $G5
-log "$DU -r $G3 $G4"
-$DU -r $G3 $G4 2>&1 > $LOGFILE
-log "$DU $G4 $G5"
-$DU $G4 $G5 2>&1 > $LOGFILE
-
-# Rather surprisingly, all.g doesn't pass this comparison... not sure
-# why yet...
-#
-#log "$GD -v -t 0.0001 -F \"! -attr regionid_colortable\" $G3 $G5"
-#$GD -v -t 0.0001 -F "! -attr regionid_colortable" $G3 $G5 2>&1 > $LOGFILE
-#STATUS=$?
-# binary dbupdate should't have significantly altered the file.
-#if [ $STATUS -gt 0 ] ; then
-#    log "-> dbupgrade cycle FAILED, see $LOGFILE"
-#    exit $STATUS
-#fi
-
-# After all that, the original v5 .g file and the file produced at the end of
-# all the processing should be identical
-#
-# (Well, unchanged sans a region color table, region_id=-1 on all.g and
-# numerical differences anyway... Accomidate data changes with gdiff
-# filtering.)
-log "$GD -v -t 0.0001 -F \"! -name _GLOBAL ! -attr region_id=-1\" $G1 $G5"
-$GD -v -t 0.0001 -F "! -name _GLOBAL ! -attr region_id=-1" $G1 $G5 2>&1 > 
$LOGFILE
-STATUS=$?
-
-if [ $STATUS -gt 0 ] ; then
-    log "-> asc.sh FAILED, see $LOGFILE"
-    exit $STATUS
-else
-    log "-> asc.sh succeeded"
-fi
-
-# Run a test database with better object coverage through g2asc.
-# Unfortunately, at the moment it looks like this won't round
-# trip.
-#
-G2ASC1="$1/regress/asc/v4.g"
-log "$G2A $G2ASC1 v4.asc"
-$G2A $G2ASC1 v4.asc 2>&1 > $LOGFILE
-STATUS=$?
-# If something went wrong, bail.
-if [ $STATUS -gt 0 ] ; then
-    log "-> g2asc broad object coverage check FAILED, see $LOGFILE"
-    exit $STATUS
-fi
-
-exit $STATUS
-
-# Local Variables:
-# mode: sh
-# tab-width: 8
-# sh-indentation: 4
-# sh-basic-offset: 4
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=4 tabstop=8

Deleted: brlcad/trunk/regress/asc2dsp.sh
===================================================================
--- brlcad/trunk/regress/asc2dsp.sh     2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/asc2dsp.sh     2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,121 +0,0 @@
-#!/bin/sh
-#                      A S C 2 D S P . S H
-# BRL-CAD
-#
-# Copyright (c) 2010-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-
-# Ensure /bin/sh
-export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
-
-# source common library functionality, setting ARGS, NAME_OF_THIS,
-# PATH_TO_THIS, and THIS.
-. "$1/regress/library.sh"
-
-if test "x$LOGFILE" = "x" ; then
-    LOGFILE=`pwd`/asc2dsp.log
-    rm -f $LOGFILE
-fi
-log "=== TESTING asc2dsp ==="
-
-A2D="`ensearch asc2dsp`"
-if test ! -f "$A2D" ; then
-    log "Unable to find asc2dsp, aborting"
-    exit 1
-fi
-
-CV="`ensearch cv`"
-if test ! -f "$CV" ; then
-    log "Unable to find cv, aborting"
-    exit 1
-fi
-
-A2P="`ensearch asc2pix`"
-if test ! -f "$A2P" ; then
-    log "Unable to find asc2pix, aborting"
-    exit 1
-fi
-
-P2B="`ensearch pix-bw`"
-if test ! -f "$P2B" ; then
-    log "Unable to find pix-bw, aborting"
-    exit 1
-fi
-
-
-BASE1=asc2dsp.old
-BASE2=asc2dsp.new
-
-
-# we generate one dsp file the old way and one the new way--they should be 
identical
-# old first
-log "... convert dsp data file in asc hex format to pix format"
-ASC1="$1/regress/dsp/$BASE1.asc"
-rm -f $BASE1.pix
-$A2P < $ASC1 > $BASE1.pix 2>>$LOGFILE
-
-log "convert pix to bw format"
-rm -f $BASE1.bw
-# take the blue pixel only
-$P2B -B1.0 $BASE1.pix > $BASE1.bw 2>>$LOGFILE
-
-log "convert pix to dsp format"
-rm -f $BASE1.dsp
-run $CV huc nu16 $BASE1.bw $BASE1.dsp
-
-log "convert dsp data file in asc decimal format to dsp format"
-ASC2="$1/regress/dsp/$BASE2.asc"
-rm -f $BASE2.dsp
-run $A2D $BASE2.asc $BASE2.dsp
-
-# the two dsp files should be identical
-run cmp $BASE1.dsp $BASE2.dsp
-STATUS=$?
-
-
-if [ $STATUS -gt 0 ] ; then
-    log "-> asc2dsp.sh FAILED, see $LOGFILE"
-else
-    log "-> asc2dsp.sh succeeded"
-fi
-
-exit $STATUS
-
-# Local Variables:
-# mode: sh
-# tab-width: 8
-# sh-indentation: 4
-# sh-basic-offset: 4
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=4 tabstop=8

Deleted: brlcad/trunk/regress/bots.sh
===================================================================
--- brlcad/trunk/regress/bots.sh        2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/bots.sh        2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,244 +0,0 @@
-#!/bin/sh
-#                         B O T S . S H
-# BRL-CAD
-#
-# Copyright (c) 2008-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-#
-# Basic series of BoT sanity checks
-#
-###
-
-# Ensure /bin/sh
-export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
-
-# source common library functionality, setting ARGS, NAME_OF_THIS,
-# PATH_TO_THIS, and THIS.
-. "$1/regress/library.sh"
-
-if test "x$LOGFILE" = "x" ; then
-    LOGFILE=`pwd`/bots.log
-    rm -f $LOGFILE
-fi
-log "=== TESTING BoT primitive ==="
-
-MGED="`ensearch mged`"
-if test ! -f "$MGED" ; then
-    log "Unable to find MGED, aborting"
-    exit 1
-fi
-RT="`ensearch rt`"
-if test ! -f "$RT" ; then
-    log "Unable to find RT, aborting"
-    exit 1
-fi
-PIXDIFF="`ensearch pixdiff`"
-if test ! -f "$PIXDIFF" ; then
-    log "Unable to find pixdiff, aborting"
-    exit 1
-fi
-
-log "creating a geometry database (bots.g) with a BoT of each type"
-rm -f bots.g
-$MGED -c >> $LOGFILE 2>&1 <<EOF
-opendb bots.g y
-make sph sph
-facetize sph.volume.rh.bot sph
-cp sph.volume.rh.bot sph.volume.lh.bot
-bot_flip sph.volume.lh.bot
-bot_merge sph.volume.no.bot sph.volume.rh.bot
-bot_vertex_fuse sph.vertex.fused.volume.no.bot sph.volume.no.bot
-bot_face_fuse sph.face.fused.volume.no.bot sph.vertex.fused.volume.no.bot
-cp sph.face.fused.volume.no.bot sph.sync.volume.no.bot
-bot_sync sph.sync.volume.no.bot
-EOF
-
-# begin validation checks
-
-FAILED=0
-
-log "Getting BoT modes"
-
-rh_mode="`$MGED -c bots.g get sph.volume.rh.bot mode 2>&1 | grep -v Using`"
-lh_mode="`$MGED -c bots.g get sph.volume.lh.bot mode 2>&1 | grep -v Using`"
-no_mode="`$MGED -c bots.g get sph.volume.no.bot mode 2>&1 | grep -v Using`"
-sync_mode="`$MGED -c bots.g get sph.sync.volume.no.bot mode 2>&1 | grep -v 
Using`"
-
-# the echo is to remove a newline that gets stored in the variable
-if test "x`echo $rh_mode``echo $lh_mode``echo $no_mode``echo $sync_mode`" != 
"xvolumevolumevolumevolume" ; then
-    log "ERROR: volume BoT mode failure"
-    FAILED="`expr $FAILED + 1`"
-fi
-
-log "Getting BoT orientations"
-
-rh="`$MGED -c bots.g get sph.volume.rh.bot orient 2>&1 | grep -v Using`"
-if test "x`echo $rh`" != "xrh" ; then
-    log "ERROR: right-hand BoT orientation (facetize) failure [$rh]"
-    FAILED="`expr $FAILED + 1`"
-fi
-lh="`$MGED -c bots.g get sph.volume.lh.bot orient 2>&1 | grep -v Using`"
-if test "x`echo $lh`" != "xlh" ; then
-    log "ERROR: left-hand BoT orientation (bot_flip) failure [$lh]"
-    FAILED="`expr $FAILED + 1`"
-fi
-no="`$MGED -c bots.g get sph.volume.no.bot orient 2>&1 | grep -v Using`"
-if test "x`echo $no`" != "xno" ; then
-    log "ERROR: merged BoT orientation (bot_merge) failure [$no]"
-    FAILED="`expr $FAILED + 1`"
-fi
-sync="`$MGED -c bots.g get sph.sync.volume.no.bot orient 2>&1 | grep -v Using`"
-if test "x`echo $no`" != "xno" ; then
-    log "ERROR: synced BoT orientation (bot_sync) failure [$no]"
-    FAILED="`expr $FAILED + 1`"
-fi
-
-# see if the merged/fused/synced bot is the same as the
-# original.. this may need to be relaxed if there are floating point
-# sensitivity problems.
-unfused_vertices="`$MGED -c bots.g get sph.volume.rh.bot V 2>&1`"
-refused_vertices="`$MGED -c bots.g get sph.sync.volume.no.bot V 2>&1`"
-if test "x$unfused_vertices" != "x$refused_vertices" ; then
-    log "ERROR: BoT fuse (bot_vertex_fuse+bot_face_fuse) failure"
-    FAILED="`expr $FAILED + 1`"
-fi
-
-# exit early if they fail so we don't attempt to render
-if test $FAILED -ne 0 ; then
-    log "-> BoT check FAILED"
-    exit $FAILED
-fi
-
-# now test each to make sure they render identical
-
-# BASE REFERENCE
-log "... rendering implicit sphere"
-rm -f bots.sph.pix
-run $RT -s128 -o bots.sph.pix bots.g sph
-if [ ! -f bots.sph.pix ] ; then
-    log "ERROR: raytrace failure"
-    exit 1
-fi
-
-# RIGHT-HANDED
-log "Rendering right-handed volume BoT sphere"
-rm -f bots.rh.pix
-run $RT -s128 -o bots.rh.pix bots.g sph.volume.rh.bot
-if [ ! -f bots.rh.pix ] ; then
-    log "ERROR: raytrace failure"
-    exit 1
-fi
-# compare
-rm -f bots.diff.pix
-$PIXDIFF bots.sph.pix bots.rh.pix > bots.diff.pix 2>> bots.diff.log
-NUMBER_WRONG=`tail -n 1 bots.diff.log | tr , '\012' | awk '/many/ {print $1}'`
-if [ $NUMBER_WRONG -eq 0 ] ; then
-    # we expect implicit and BoT sphere to be different
-    log "ERROR: bots.diff.pix $NUMBER_WRONG off by many (this is WRONG)"
-    FAILED="`expr $FAILED + 1`"
-fi
-
-# LEFT-HANDED
-log "Rendering left-handed volume BoT sphere"
-rm -f bots.lh.pix
-run $RT -s128 -o bots.lh.pix bots.g sph.volume.lh.bot
-if [ ! -f bots.lh.pix ] ; then
-    log "ERROR: raytrace failure"
-    exit 1
-fi
-# compare
-rm -f bots.rl.diff.pix
-$PIXDIFF bots.rh.pix bots.lh.pix > bots.rl.diff.pix 2>> bots.diff.log
-NUMBER_WRONG=`tail -n 1 bots.diff.log | tr , '\012' | awk '/many/ {print $1}'`
-if [ $NUMBER_WRONG -eq 0 ] ; then
-    tail -n 1 bots.diff.log
-else
-    log "ERROR: bots.rl.diff.pix $NUMBER_WRONG off by many"
-    FAILED="`expr $FAILED + 1`"
-fi
-
-# UNORIENTED
-log "Rendering unoriented volume BoT sphere"
-rm -f bots.no.pix
-run $RT -s128 -o bots.no.pix bots.g sph.volume.no.bot
-if [ ! -f bots.no.pix ] ; then
-    log "ERROR: raytrace failure"
-    exit 1
-fi
-# compare
-rm -f bots.rn.diff.pix
-$PIXDIFF bots.rh.pix bots.no.pix > bots.rn.diff.pix 2>> bots.diff.log
-NUMBER_WRONG=`tail -n 1 bots.diff.log | tr , '\012' | awk '/many/ {print $1}'`
-if [ $NUMBER_WRONG -eq 0 ] ; then
-    tail -n 1 bots.diff.log
-else
-    log "ERROR: bots.rn.diff.pix $NUMBER_WRONG off by many"
-    FAILED="`expr $FAILED + 1`"
-fi
-
-# SYNC'D UNORIENTED
-log "Rendering synced unoriented volume BoT sphere"
-rm -f bots.sync.pix
-run $RT -s128 -o bots.sync.pix bots.g sph.sync.volume.no.bot
-if [ ! -f bots.sync.pix ] ; then
-    log "ERROR: raytrace failure"
-    exit 1
-fi
-# compare
-rm -f bots.rs.diff.pix
-$PIXDIFF bots.rh.pix bots.sync.pix > bots.rs.diff.pix 2>> bots.diff.log
-NUMBER_WRONG=`tail -n 1 bots.diff.log | tr , '\012' | awk '/many/ {print $1}'`
-if [ $NUMBER_WRONG -eq 0 ] ; then
-    log `tail -n 1 bots.diff.log`
-else
-    log "ERROR: bots.rs.diff.pix $NUMBER_WRONG off by many"
-    FAILED="`expr $FAILED + 1`"
-fi
-
-
-if test $FAILED -eq 0 ; then
-    log "-> BoT check succeeded"
-else
-    log "-> BoT check FAILED, see $LOGFILE"
-fi
-
-exit $FAILED
-
-# Local Variables:
-# tab-width: 8
-# mode: sh
-# sh-indentation: 4
-# sh-basic-offset: 4
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=4 tabstop=8

Modified: brlcad/trunk/regress/burst/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/burst/CMakeLists.txt   2020-07-20 15:43:30 UTC (rev 
76376)
+++ brlcad/trunk/regress/burst/CMakeLists.txt   2020-07-20 19:45:30 UTC (rev 
76377)
@@ -7,7 +7,7 @@
   )
 
 if (TARGET ktank.g)
-  BRLCAD_REGRESSION_TEST(regress-burst "nburst;ktank.g" EXEC burst)
+  BRLCAD_REGRESSION_TEST(regress-burst "nburst;ktank.g" EXEC nburst)
 
   set(BURST_CLEAN_FILES
     ktank_burst.plot

Deleted: brlcad/trunk/regress/comgeom.sh
===================================================================
--- brlcad/trunk/regress/comgeom.sh     2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/comgeom.sh     2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,173 +0,0 @@
-#!/bin/sh
-#                     C O M G E O M . S H
-# BRL-CAD
-#
-# Copyright (c) 2008-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-#
-# Test conversion from .g to GIFT (v5) and back.
-#
-###
-
-# Ensure /bin/sh
-export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
-
-# source common library functionality, setting ARGS, NAME_OF_THIS,
-# PATH_TO_THIS, and THIS.
-. "$1/regress/library.sh"
-
-if test "x$LOGFILE" = "x" ; then
-    LOGFILE=`pwd`/comgeom.log
-    rm -f $LOGFILE
-fi
-log "=== TESTING 'comgeom-g' and 'vdeck' ==="
-
-ASC2G="`ensearch asc2g`"
-if test ! -f "$ASC2G" ; then
-    log "Unable to find asc2g, aborting"
-    exit 1
-fi
-VDECK="`ensearch vdeck`"
-if test ! -f "$VDECK" ; then
-    log "Unable to find vdeck, aborting"
-    exit 1
-fi
-COMGEOM="`ensearch comgeom-g`"
-if test ! -f "$COMGEOM" ; then
-    log "Unable to find comgeom-g, aborting"
-    exit 1
-fi
-GZIP="`which gzip`"
-if test ! -f "$GZIP" ; then
-    log "Unable to find gzip, aborting"
-    exit 1
-fi
-
-FAILURES=0
-
-# make our starting database
-rm -f comgeom.m35.asc
-log "... running gzip decompress"
-$GZIP -d -c "$PATH_TO_THIS/tgms/m35.asc.gz" > comgeom.m35.asc
-rm -f comgeom.m35.g
-run $ASC2G comgeom.m35.asc comgeom.m35.g
-
-# get our
-# using vdeck interactively to convert .g to GIFT
-#(following example in red.sh and mged test)
-rm -f solids regions region_ids
-log "... running $VDECK comgeom.m35.g"
-$VDECK comgeom.m35.g >> $LOGFILE 2>&1 <<EOF
-i all.g
-d
-q
-EOF
-
-# assemble pieces to compare with test version
-rm -f comgeom.m35.cg
-cat solids     >  comgeom.m35.cg
-cat regions    >> comgeom.m35.cg
-cat region_ids >> comgeom.m35.cg
-
-# get test version
-rm -f comgeom.m35-baseline.cg
-log "... running gzip decompress"
-$GZIP -d -c "$PATH_TO_THIS/tgms/m35.cg.gz" > comgeom.m35-baseline.cg
-
-cmp comgeom.m35.cg comgeom.m35-baseline.cg
-STATUS=$?
-
-if [ X$STATUS != X0 ] ; then
-    log "vdeck results differ $STATUS"
-    FAILURES="`expr $FAILURES + 1`"
-else
-    log "vdeck test succeeded (1 of 3)"
-fi
-
-# the part 2 test checks for a known (but corrected) failures to
-# convert ars solids, it also checks all solid types recognized
-# by vdeck
-log "...testing 'comgeom-g' command (GIFT v5)..."
-rm -f comgeom.t-v5.g
-run $COMGEOM "$PATH_TO_THIS/tgms/comgeom.cg" comgeom.t-v5.g
-STATUS=$?
-
-if [ X$STATUS != X0 ] ; then
-    log "comgeom-g conversion errors: $STATUS"
-    FAILURES="`expr $FAILURES + 1`"
-else
-    ERR=`grep error comgeom-g.log`
-    if test "x$ERR" = "x" ; then
-       log "comgeom-g v5 test succeeded (2 of 3)"
-    else
-       log "comgeom-g v5 errors, see  'comgeom-g.log'"
-       FAILURES="`expr $FAILURES + 1`"
-    fi
-fi
-
-# the part 3 test checks comgeom-g against a GIFT v4 tgm
-log "...testing 'comgeom-g' command (GIFT v4)..."
-rm -f comgeom.t-v4.g
-run $COMGEOM -v4 "$PATH_TO_THIS/tgms/comgeom.tgt-1-v4.cg" comgeom.t-v4.g
-STATUS=$?
-
-if [ X$STATUS != X0 ] ; then
-    log "comgeom-g conversion errors: $STATUS"
-    FAILURES="`expr $FAILURES + 1`"
-else
-    ERR=`grep error comgeom-g.log`
-    if test "x$ERR" = "x" ; then
-       log "comgeom-g v4 test succeeded (3 of 3)"
-    else
-       log "comgeom-g v4 errors, see  'comgeom-g.log'"
-       FAILURES="`expr $FAILURES + 1`"
-    fi
-fi
-
-if test $FAILURES -eq 0 ; then
-    log "-> vdeck/comgeom-g check succeeded"
-else
-    log "-> vdeck/comgeom-g check FAILED, see $LOGFILE"
-fi
-
-exit $FAILED
-
-
-# Local Variables:
-# tab-width: 8
-# mode: sh
-# sh-indentation: 4
-# sh-basic-offset: 4
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=4 tabstop=8

Copied: brlcad/trunk/regress/dsp/CMakeLists.txt (from rev 76376, 
brlcad/branches/bioh/regress/dsp/CMakeLists.txt)
===================================================================
--- brlcad/trunk/regress/dsp/CMakeLists.txt                             (rev 0)
+++ brlcad/trunk/regress/dsp/CMakeLists.txt     2020-07-20 19:45:30 UTC (rev 
76377)
@@ -0,0 +1,128 @@
+
+if (SH_EXEC AND TARGET mged)
+
+  add_test(NAME regress-dsp COMMAND ${SH_EXEC} 
"${CMAKE_CURRENT_SOURCE_DIR}/dsp.sh" ${CMAKE_SOURCE_DIR})
+  BRLCAD_REGRESSION_TEST(regress-dsp "mged;cv;asc2pix;rt;pix-bw" TEST_DEFINED)
+
+endif (SH_EXEC AND TARGET mged)
+
+CMAKEFILES(
+  dsp.sh
+  asc2dsp-new.asc
+  asc2dsp-old.asc
+  dsp-1-1.asc
+  dsp-1-2.asc
+  dsp-2-1.asc
+  dsp-2-2.asc
+  dsp-2-3.asc
+  dsp-2-4.asc
+  dsp-2-5.asc
+  dsp-3-1.asc
+  dsp-3-2.asc
+  dsp-3-3.asc
+  dsp-3-4.asc
+  dsp-3-5.asc
+  dsp-3-6.asc
+  dsp-3-7.asc
+  dsp-3-8.asc
+  dsp-common.sh
+  run-dsp-case-set-0.sh
+  run-dsp-case-set-1.sh
+  run-dsp-case-set-2.sh
+  run-dsp-case-set-3.sh
+  )
+
+# list of temporary files
+set(dsp_outfiles
+  dsp-2-1.bw
+  dsp-2-1.dsp
+  dsp-2-1.g
+  dsp-2-1.log
+  dsp-2-1.pix
+  dsp-2-1.rt.pix
+  dsp-2-2.bw
+  dsp-2-2.dsp
+  dsp-2-2.g
+  dsp-2-2.log
+  dsp-2-2.pix
+  dsp-2-2.rt.pix
+  dsp-2-3.bw
+  dsp-2-3.dsp
+  dsp-2-3.g
+  dsp-2-3.log
+  dsp-2-3.pix
+  dsp-2-3.rt.pix
+  dsp-2-4.bw
+  dsp-2-4.dsp
+  dsp-2-4.g
+  dsp-2-4.log
+  dsp-2-4.pix
+  dsp-2-4.rt.pix
+  dsp-2-5.bw
+  dsp-2-5.dsp
+  dsp-2-5.g
+  dsp-2-5.log
+  dsp-2-5.pix
+  dsp-2-5.rt.pix
+  dsp-3-1.bw
+  dsp-3-1.dsp
+  dsp-3-1.g
+  dsp-3-1.log
+  dsp-3-1.pix
+  dsp-3-1.rt.pix
+  dsp-3-2.bw
+  dsp-3-2.dsp
+  dsp-3-2.g
+  dsp-3-2.log
+  dsp-3-2.pix
+  dsp-3-2.rt.pix
+  dsp-3-3.bw
+  dsp-3-3.dsp
+  dsp-3-3.g
+  dsp-3-3.log
+  dsp-3-3.pix
+  dsp-3-3.rt.pix
+  dsp-3-4.bw
+  dsp-3-4.dsp
+  dsp-3-4.g
+  dsp-3-4.log
+  dsp-3-4.pix
+  dsp-3-4.rt.pix
+  dsp-3-5.bw
+  dsp-3-5.dsp
+  dsp-3-5.g
+  dsp-3-5.log
+  dsp-3-5.pix
+  dsp-3-5.rt.pix
+  dsp-3-6.bw
+  dsp-3-6.dsp
+  dsp-3-6.g
+  dsp-3-6.log
+  dsp-3-6.pix
+  dsp-3-6.rt.pix
+  dsp-3-7.bw
+  dsp-3-7.dsp
+  dsp-3-7.g
+  dsp-3-7.log
+  dsp-3-7.pix
+  dsp-3-7.rt.pix
+  dsp-3-8.bw
+  dsp-3-8.dsp
+  dsp-3-8.g
+  dsp-3-8.log
+  dsp-3-8.pix
+  dsp-3-8.rt.pix
+  dsp.log
+  )
+
+set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES 
"${dsp_outfiles}")
+DISTCLEAN(${dsp_outfiles})
+
+CMAKEFILES(CMakeLists.txt)
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8

Copied: brlcad/trunk/regress/dsp/dsp.sh (from rev 76376, 
brlcad/branches/bioh/regress/dsp/dsp.sh)
===================================================================
--- brlcad/trunk/regress/dsp/dsp.sh                             (rev 0)
+++ brlcad/trunk/regress/dsp/dsp.sh     2020-07-20 19:45:30 UTC (rev 76377)
@@ -0,0 +1,101 @@
+#!/bin/sh
+#                          D S P . S H
+# BRL-CAD
+#
+# Copyright (c) 2010-2020 United States Government as represented by
+# the U.S. Army Research Laboratory.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# 3. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+###
+
+# Ensure /bin/sh
+export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
+
+# source common library functionality, setting ARGS, NAME_OF_THIS,
+# PATH_TO_THIS, and THIS.
+. "$1/regress/library.sh"
+
+if test "x$LOGFILE" = "x" ; then
+    LOGFILE=`pwd`/dsp.log
+    rm -f $LOGFILE
+fi
+log "=== TESTING dsp primitive ==="
+
+MGED="`ensearch mged`"
+if test ! -f "$MGED" ; then
+    log "Unable to find mged, aborting"
+    exit 1
+fi
+
+CV="`ensearch cv`"
+if test ! -f "$CV" ; then
+    log "Unable to find cv, aborting"
+    exit 1
+fi
+
+A2P="`ensearch asc2pix`"
+if test ! -f "$A2P" ; then
+    log "Unable to find asc2pix, aborting"
+    exit 1
+fi
+
+FAILED=0
+
+# note that cases 0 and 1 are not functional yet
+#CASES='0 1 2 3'
+CASES='2 3'
+
+for i in $CASES ; do
+    run "$PATH_TO_THIS/run-dsp-case-set-$i.sh" "$1"
+    ret=$?
+    if [ $ret -gt 0 ] ; then
+       FAILED="`expr $FAILED + 1`"
+    fi
+done
+
+# TODO: create random 10x10 datasets
+
+
+if [ $FAILED = 0 ] ; then
+    log "-> dsp.sh succeeded"
+else
+    log "-> dsp.sh FAILED, see $LOGFILE"
+fi
+
+exit $FAILED
+
+# Local Variables:
+# mode: sh
+# tab-width: 8
+# sh-indentation: 4
+# sh-basic-offset: 4
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=4 tabstop=8

Deleted: brlcad/trunk/regress/dsp.sh
===================================================================
--- brlcad/trunk/regress/dsp.sh 2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/dsp.sh 2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,101 +0,0 @@
-#!/bin/sh
-#                          D S P . S H
-# BRL-CAD
-#
-# Copyright (c) 2010-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-
-# Ensure /bin/sh
-export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
-
-# source common library functionality, setting ARGS, NAME_OF_THIS,
-# PATH_TO_THIS, and THIS.
-. "$1/regress/library.sh"
-
-if test "x$LOGFILE" = "x" ; then
-    LOGFILE=`pwd`/dsp.log
-    rm -f $LOGFILE
-fi
-log "=== TESTING dsp primitive ==="
-
-MGED="`ensearch mged`"
-if test ! -f "$MGED" ; then
-    log "Unable to find mged, aborting"
-    exit 1
-fi
-
-CV="`ensearch cv`"
-if test ! -f "$CV" ; then
-    log "Unable to find cv, aborting"
-    exit 1
-fi
-
-A2P="`ensearch asc2pix`"
-if test ! -f "$A2P" ; then
-    log "Unable to find asc2pix, aborting"
-    exit 1
-fi
-
-FAILED=0
-
-# note that cases 0 and 1 are not functional yet
-#CASES='0 1 2 3'
-CASES='2 3'
-
-for i in $CASES ; do
-    run "$PATH_TO_THIS/dsp/run-dsp-case-set-$i.sh" "$1"
-    ret=$?
-    if [ $ret -gt 0 ] ; then
-       FAILED="`expr $FAILED + 1`"
-    fi
-done
-
-# TODO: create random 10x10 datasets
-
-
-if [ $FAILED = 0 ] ; then
-    log "-> dsp.sh succeeded"
-else
-    log "-> dsp.sh FAILED, see $LOGFILE"
-fi
-
-exit $FAILED
-
-# Local Variables:
-# mode: sh
-# tab-width: 8
-# sh-indentation: 4
-# sh-basic-offset: 4
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=4 tabstop=8

Modified: brlcad/trunk/regress/fuzz/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/fuzz/CMakeLists.txt    2020-07-20 15:43:30 UTC (rev 
76376)
+++ brlcad/trunk/regress/fuzz/CMakeLists.txt    2020-07-20 19:45:30 UTC (rev 
76377)
@@ -4,26 +4,35 @@
   ${GED_INCLUDE_DIRS}
   )
 
-project(fuzz)
+# First check whether fuzzing support is available.
+include(CheckCXXCompilerFlag)
+check_cxx_compiler_flag(-fsanitize=fuzzer HAVE_FUZZER)
 
-add_executable(fuzz_test fuzz_ged.cpp)
-target_link_libraries(fuzz_test PUBLIC libbu librt libged)
-brlcad_add_fuzzer(fuzz_test)
+if (HAVE_FUZZER)
 
-configure_file(run.sh "${CMAKE_CURRENT_BINARY_DIR}/fuzz" COPYONLY)
-install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/fuzz" DESTINATION ${BIN_DIR})
-configure_file(run.sh ${CMAKE_BINARY_DIR}/bin/fuzz COPYONLY)
+  add_executable(fuzz_test fuzz_ged.cpp)
+  target_link_libraries(fuzz_test PUBLIC libbu librt libged)
+  target_compile_options(fuzz_test PRIVATE -fsanitize=fuzzer)
+  target_link_options(fuzz_test PRIVATE -fsanitize=fuzzer)
 
-#add_test(NAME fuzz COMMAND ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/fuzz run)
+  configure_file(run.sh "${CMAKE_CURRENT_BINARY_DIR}/fuzz" COPYONLY)
+  install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/fuzz" DESTINATION ${BIN_DIR})
+  configure_file(run.sh ${CMAKE_BINARY_DIR}/bin/fuzz COPYONLY)
 
-add_custom_target(fuzz
-  COMMAND ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/fuzz run
-  )
+  #add_test(NAME fuzz COMMAND ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/fuzz run)
 
+  add_custom_target(fuzz
+    COMMAND ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/fuzz run
+    )
 
-#Not sure what this is for
-#CMAKEFILES(CMakeLists.txt)
+endif (HAVE_FUZZER)
 
+CMAKEFILES(
+  CMakeLists.txt
+  fuzz_ged.cpp
+  fuzz_test1.cxx
+  run.sh
+  )
 
 # Local Variables:
 # tab-width: 8

Deleted: brlcad/trunk/regress/gqa.sh
===================================================================
--- brlcad/trunk/regress/gqa.sh 2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/gqa.sh 2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,185 +0,0 @@
-#!/bin/sh
-#                          G Q A . S H
-# BRL-CAD
-#
-# Copyright (c) 2010-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-
-# Ensure /bin/sh
-export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
-
-# source common library functionality, setting ARGS, NAME_OF_THIS,
-# PATH_TO_THIS, and THIS.
-. "$1/regress/library.sh"
-
-if test "x$LOGFILE" = "x" ; then
-    LOGFILE=`pwd`/gqa.log
-    rm -f $LOGFILE
-fi
-log "=== TESTING 'gqa' ==="
-
-MGED="`ensearch mged`"
-if test ! -f "$MGED" ; then
-    log "Unable to find mged, aborting"
-    exit 1
-fi
-
-GQABIN="`ensearch gqa`"
-if test ! -f "$GQABIN" ; then
-    log "Unable to find gqa, aborting"
-    exit 1
-fi
-
-rm -f density_table.txt
-echo "5 1 stuff" > density_table.txt
-echo "2 1 gas" >> density_table.txt
-
-rm -f gqa.mged
-cat > gqa.mged <<EOF
-units m
-bo -i u c _DENSITIES density_table.txt
-
-in box1.s rpp 0 10 0 10 0 10
-in box2.s rpp 1  9 1  9 1  9
-in box3.s rpp 1 10 1  9 1  9
-in box4.s rpp 0.5  9.5 0.5  5 0.5  9.5
-
-r solid_box.r u box1.s
-adjust solid_box.r GIFTmater 5
-mater solid_box.r "plastic tr=0.5 di=0.5 sp=0.5" 128 128 128 0
-
-r closed_box.r u box1.s - box2.s
-adjust closed_box.r GIFTmater 5
-mater closed_box.r "plastic tr=0.5 di=0.5 sp=0.5" 128 128 128 0
-
-r open_box.r u box1.s - box3.s
-mater open_box.r "plastic tr=0.5 di=0.5 sp=0.5" 128 128 128 0
-
-r exposed_air.r u box3.s
-adjust exposed_air.r air 2
-mater exposed_air.r  "plastic tr=0.8 di=0.1 sp=0.1" 255 255 128 0
-g exposed_air.g exposed_air.r open_box.r
-
-r adj_air1.r u box2.s + box4.s
-r adj_air2.r u box2.s - box4.s
-
-adjust adj_air1.r air 3
-adjust adj_air1.r GIFTmater 2
-
-adjust adj_air2.r air 4
-adjust adj_air2.r GIFTmater 2
-
-mater adj_air1.r  "plastic tr=0.5 di=0.1 sp=0.1" 255 128 128  0
-mater adj_air2.r  "plastic tr=0.5 di=0.1 sp=0.1" 128 128 255 0
-
-g adj_air.g closed_box.r adj_air1.r adj_air2.r
-
-g gap.g closed_box.r adj_air2.r
-
-r overlap_obj.r u box3.s
-adjust overlap_obj.r GIFTMater 5
-g overlaps closed_box.r overlap_obj.r
-
-q
-EOF
-
-
-log "... running mged to create a geometry database (gqa.g)"
-rm -f gqa.g
-$MGED -c gqa.g <<EOF >> $LOGFILE 2>&1
-`cat gqa.mged`
-EOF
-
-GQA="$GQABIN -u m,m^3,kg -g 250mm-50mm -p gqa."
-STATUS=0
-
-#
-# now that the inputs have been built, run the tests
-#
-# box1.s = 10x10x10     = 1000 m^3
-# box2.s = 8x8x8        =  512 m^3
-# box3.s = 8x8x9        =  576 m^3
-# adj_air1.r = 512-256  = 256 m^3
-# adj_air2.r = 512-256  = 256 m^3
-# closed_box.r =1000-512= 488 m^3
-# exposed_air.r         = 576 m^3
-# open_box.r = 1000-576 = 424 m^3
-
-rm -f gqa.overlaps.plot3
-run $GQA -Ao gqa.g overlaps
-
-rm -f gqa.exp_air.plot3
-run $GQA -Ae gqa.g exposed_air.g
-
-rm -f gqa.adj_air.plot3
-run $GQA -Aa gqa.g adj_air.g
-
-rm -f gqa.gaps.plot3
-run $GQA -Ag gqa.g gap.g
-
-rm -f gqa.volume.plot3
-run $GQA -Av -v gqa.g closed_box.r
-
-run $GQA -r -Aw -v gqa.g closed_box.r
-
-rm -f gqa.volume.plot3
-run $GQA -r -Avw gqa.g solid_box.r
-
-rm -f gqa.volume.plot3
-run $GQA -r -Avw gqa.g adj_air.g
-
-rm -f gqa.overlaps.plot3
-run $GQA -r -v -g 0.25m-25mm -Awo gqa.g closed_box.r
-
-rm -f gqa.overlaps.plot3
-run $GQA -g 50mm -Ao gqa.g closed_box.r
-
-run $GQA -Am gqa.g closed_box.r
-
-
-if [ $STATUS = 0 ] ; then
-    log "-> gqa.sh succeeded"
-else
-    log "-> gqa.sh FAILED, see $LOGFILE"
-fi
-
-exit $STATUS
-
-# Local Variables:
-# mode: sh
-# tab-width: 8
-# sh-indentation: 4
-# sh-basic-offset: 4
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=4 tabstop=8

Deleted: brlcad/trunk/regress/iges.sh
===================================================================
--- brlcad/trunk/regress/iges.sh        2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/iges.sh        2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,282 +0,0 @@
-#!/bin/sh
-#                         I G E S . S H
-# BRL-CAD
-#
-# Copyright (c) 2010-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-
-# Ensure /bin/sh
-export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
-
-# source common library functionality, setting ARGS, NAME_OF_THIS,
-# PATH_TO_THIS, and THIS.
-. "$1/regress/library.sh"
-
-if test "x$LOGFILE" = "x" ; then
-    LOGFILE=`pwd`/iges.log
-    rm -f "$LOGFILE"
-fi
-log "=== TESTING iges conversion ==="
-
-MGED="`ensearch mged`"
-if test ! -f "$MGED" ; then
-    log "Unable to find mged, aborting"
-    exit 1
-fi
-
-GIGES="`ensearch g-iges`"
-if test ! -f "$MGED" ; then
-    log "Unable to find g-iges, aborting"
-    exit 1
-fi
-
-IGESG="`ensearch iges-g`"
-if test ! -f "$MGED" ; then
-    log "Unable to find iges-g, aborting"
-    exit 1
-fi
-
-
-STATUS=0
-
-# CREATE G
-
-output=iges.g
-rm -f "$output"
-log "... running mged to create facetized geometry ($output)"
-$MGED -c >> "$LOGFILE" 2>&1 <<EOF
-opendb $output y
-
-units mm
-size 1000
-make box.s arb8
-facetize -n box.nmg box.s
-kill box.s
-q
-EOF
-if [ ! -f "$output" ] ; then
-    log "ERROR: mged failed to create $output"
-    log "-> iges.sh FAILED, see $LOGFILE"
-    exit 1
-fi
-
-# G TO IGES
-
-# test G -> IGES via -o
-output="iges.export.iges"
-rm -f "$output"
-run $GIGES -o "$output" iges.g box.nmg
-if [ ! -f "$output" ] ; then
-    log "ERROR: g-iges failed to create $output"
-    log "-> iges.sh FAILED, see $LOGFILE"
-    exit 1
-fi
-
-# test G -> IGES via stdout (can't use 'run')
-output="iges.export.stdout.iges"
-rm -f "$output"
-log "... running $GIGES iges.g box.nmg > $output"
-$GIGES iges.g box.nmg > $output 2>> "$LOGFILE"
-if [ ! -f "$output" ] ; then
-    log "ERROR: g-iges failed to create $output"
-    log "-> iges.sh FAILED, see $LOGFILE"
-    exit 1
-fi
-
-# test that the first g-iges -o output matches the stdout output
-files_match iges.export.iges iges.export.stdout.iges -I 'G'
-if test $? -ne 0 ; then
-    STATUS="`expr $STATUS + 1`"
-    export STATUS
-fi
-
-# G TO IGES TO G
-
-# test IGES -> G
-output="iges.import.g"
-rm -f "$output"
-run $IGESG -o "$output" iges.export.iges
-if [ ! -f "$output" ] ; then
-    log "ERROR: iges-g failed to create $output"
-    log "-> iges.sh FAILED, see $LOGFILE"
-    exit 1
-fi
-
-# test IGES -> G (with -p)
-output="iges.import2.g"
-rm -f "$output"
-run $IGESG -o "$output" -p iges.export.iges
-if [ ! -f "$output" ] ; then
-    log "ERROR: iges-g failed to create $output"
-    log "-> iges.sh FAILED, see $LOGFILE"
-    exit 1
-fi
-
-# test IGES -> G (with -p -N name)
-output="iges.import3.g"
-rm -f "$output"
-run $IGESG -o "$output" -p -N box.nmg iges.export.iges
-if [ ! -f "$output" ] ; then
-    log "ERROR: iges-g failed to create $output"
-    log "-> iges.sh FAILED, see $LOGFILE"
-    exit 1
-fi
-
-# test that these produced different output
-files_differ iges.import.g iges.import2.g
-if test $? -ne 0 ; then
-    STATUS="`expr $STATUS + 1`"
-    export STATUS
-fi
-# FIXME: these should match but -N is creating 'box.nmgA'
-# files_match iges.import2.g iges.import3.g
-# if test $? -ne 0 ; then
-#     STATUS="`expr $STATUS + 1`"
-#     export STATUS
-# fi
-# FIXME: these should match but -N is creating 'box.nmgA'
-# files_match iges.import.g iges.import3.g
-# if test $? -ne 0 ; then
-#     STATUS="`expr $STATUS + 1`"
-#     export STATUS
-# fi
-
-# G TO IGES TO G TO IGES (ROUND TRIP)
-
-# make sure we don't permute vertices or introduce some other
-# unintended change.
-
-# test G -> IGES #2a via -o
-output="iges.import.export.iges"
-rm -f "$output"
-run $GIGES -o "$output" iges.import.g box.nmg
-if [ ! -f "$output" ] ; then
-    log "ERROR: g-iges failed to create $output"
-    log "-> iges.sh FAILED, see $LOGFILE"
-    exit 1
-fi
-
-# test G -> IGES #2b via -o
-output="iges.import2.export.iges"
-rm -f "$output"
-run $GIGES -o "$output" iges.import2.g box.nmg
-if [ ! -f "$output" ] ; then
-    log "ERROR: g-iges failed to create $output"
-    log "-> iges.sh FAILED, see $LOGFILE"
-    exit 1
-fi
-
-# test G -> IGES #2c via -o
-output="iges.import3.export.iges"
-rm -f "$output"
-run $GIGES -o "$output" iges.import3.g box.nmg
-if [ ! -f "$output" ] ; then
-    log "ERROR: g-iges failed to create $output"
-    log "-> iges.sh FAILED, see $LOGFILE"
-    exit 1
-fi
-
-# COMPARE RESULTS
-
-# test that initial g-iges output does NOT match final BoT output
-files_differ iges.export.iges iges.import.export.iges -I 'G'
-if test $? -ne 0 ; then
-    STATUS="`expr $STATUS + 1`"
-    export STATUS
-fi
-
-# FIXME: these should match but vertices are permuted!
-# test that initial g-iges output DOES match final NMG output
-# files_match iges.export.iges iges.import2.export.iges -I 'G'
-# if test $? -ne 0 ; then
-#     STATUS="`expr $STATUS + 1`"
-#     export STATUS
-# fi
-
-# test that initial g-iges output DOES match final named NMG output
-# FIXME: these should match but iges-g -N is creating 'box.nmgA'
-# files_match iges.export.iges iges.import3.export.iges -I 'G'
-# if test $? -ne 0 ; then
-#     STATUS="`expr $STATUS + 1`"
-#     export STATUS
-# fi
-
-# COMPLEX TEST
-
-# check another TGM known to have a conversion failure which should be graceful
-ASC2G="`ensearch asc2g`"
-if test ! -f "$ASC2G" ; then
-    log "Unable to find asc2g, aborting"
-    exit 1
-fi
-GZIP="`which gzip`"
-if test ! -f "$GZIP" ; then
-    log "Unable to find gzip, aborting"
-    exit 1
-fi
-
-# make our starting database
-$GZIP -d -c "$PATH_TO_THIS/tgms/m35.asc.gz" > iges.m35.asc
-$ASC2G iges.m35.asc iges.m35.g
-
-# and test it (note it should work with the '-f' option, but fail
-# without any options)
-run $GIGES -f -o iges.m35.r516.iges iges.m35.g r516
-if test $? -ne 0 ; then
-    STATUS="`expr $STATUS + 1`"
-    export STATUS
-fi
-
-# TODO: add full m35 conversion test
-# run $GIGES -f -o iges.m35.iges iges.m35.g component
-# if test $? -ne 0 ; then
-#     STATUS="`expr $STATUS + 1`"
-#     export STATUS
-# fi
-
-if [ X$STATUS = X0 ] ; then
-    log "-> iges.sh succeeded"
-else
-    log "-> iges.sh FAILED, see $LOGFILE"
-fi
-
-exit $STATUS
-
-# Local Variables:
-# mode: sh
-# tab-width: 8
-# sh-indentation: 4
-# sh-basic-offset: 4
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=4 tabstop=8

Modified: brlcad/trunk/regress/library.sh
===================================================================
--- brlcad/trunk/regress/library.sh     2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/library.sh     2020-07-20 19:45:30 UTC (rev 76377)
@@ -44,10 +44,6 @@
 THIS="$PATH_TO_THIS/$NAME_OF_THIS"
 export ARGS ARG0 ARG1 NAME_OF_THIS PATH_TO_THIS THIS
 
-LD_LIBRARY_PATH=../src/other/tcl/unix:../src/other/tk/unix:$LD_LIBRARY_PATH
-DYLD_LIBRARY_PATH=../src/other/tcl/unix:../src/other/tk/unix:$DYLD_LIBRARY_PATH
-export LD_LIBRARY_PATH DYLD_LIBRARY_PATH
-
 is_absolute() {
     if test "x$1" = "x" ; then
        return
@@ -211,7 +207,7 @@
 # script's location
 ensearch ( ) {
     ensearch_file="$1"
-    ensearch_dirs="$ARG1/bin ../bin ./bin \"$PATH_TO_THIS/../bin\" ../bench 
\"$PATH_TO_THIS/../bench\" "
+    ensearch_dirs="$ARG1/bin ../bin ../../bin ./bin \"$PATH_TO_THIS/../bin\" 
../bench \"$PATH_TO_THIS/../bench\" "
 
     if test "x$ensearch_file" = "x" ; then
        # nothing to do

Deleted: brlcad/trunk/regress/lights.cmake
===================================================================
--- brlcad/trunk/regress/lights.cmake   2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/lights.cmake   2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,104 +0,0 @@
-#                       L I G H T S . C M A K E
-# BRL-CAD
-#
-# Copyright (c) 2010-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-
-include("${CMAKE_CURRENT_SOURCE_DIR}/BRLCAD_Regress_Util.cmake")
-
-ensearch(rt      RT      REQUIRED)
-ensearch(asc2g   A2G     REQUIRED)
-ensearch(pixdiff PIXDIFF REQUIRED)
-
-execute_process(COMMAND ${CMAKE_COMMAND} -E remove -f lights.pix)
-
-set(lights_asc "
-title {Untitled BRL-CAD Database}
-units mm
-put {local} ell V {-4 -4 4} A {0.5 0 0} B {0 0.5 0} C {0 0 0.5}
-put {infinite} ell V {-4 4 4} A {0.5 0 0} B {0 0.5 0} C {0 0 0.5}
-put {plate.s} arb8 V1 {-30 -30 -1} V2 {30 -30 -1} V3 {30 30 -1} V4 {-30 30 -1} 
V5 {-30 -30 0} V6 {30 -30 0} V7 {30 30 0} V8 {-30 30 0}
-put {pole2.s} tgc V {9 2.5 1} H {0 0 10} A {0 -0.25 0} B {0.25 0 0} C {0 -0.25 
0} D {0.25 0 0}
-put {pole1.s} tgc V {-11 2.5 1} H {0 0 10} A {0 -0.25 0} B {0.25 0 0} C {0 
-0.25 0} D {0.25 0 0}
-put {ball2.s} ell V {10 0 5} A {2 0 0} B {0 2 0} C {0 0 2}
-put {ball1.s} ell V {-10 0 5} A {2 0 0} B {0 2 0} C {0 0 2}
-put {shadow_objs.r} comb region yes tree {u {u {l ball1.s} {l pole1.s}} {u {l 
ball2.s} {l pole2.s}}}
-attr set {shadow_objs.r} {region} {R} {los} {100} {material_id} {1} 
{region_id} {1001}
-put {plate.r} comb region yes tree {l plate.s}
-attr set {plate.r} {region} {R} {los} {100} {material_id} {1} {region_id} 
{1000}
-put {infinite.r} comb region yes tree {l infinite}
-attr set {infinite.r} {region} {R} {los} {100} {material_id} {1} {region_id} 
{1002} {oshader} {light {i 1 v 0}} {rgb} {255/255/255}
-put {local.r} comb region yes tree {l local}
-attr set {local.r} {region} {R} {rgb} {255/255/255} {oshader} {light {s 4  pt 
{-4.46848 -4.09864 4.1442} pt {-3.55149 -4.11535 4.18852} pt {-4.41469 -4.27933 
4.00234} pt {-3.62755 -4.33234 4.02878} pt {-4.09301 -4.44478 3.79139} pt 
{-4.10851 -3.55786 3.79328} pt {-3.63361 -4.2739 3.79817} pt {-3.62019 -3.74156 
3.80263} pt {-4.432 -3.88231 4.22254} pt {-3.59094 -3.85892 4.25053} pt 
{-3.85797 -4.45142 3.83861} pt {-3.84812 -3.55582 3.82785} pt {-4.16269 
-4.30592 4.36048} pt {-3.84629 -4.30072 4.3687} pt {-4.3644 -3.65806 3.98285} 
pt {-3.67668 -3.61863 3.99506} pt {-4.38028 -3.92574 4.31602} pt {-3.62451 
-3.93287 4.32327} pt {-4.36414 -3.6574 4.00475} pt {-3.66174 -3.63259 4.02432} 
pt {-4.27269 -3.6819 3.72714} pt {-3.71379 -3.68422 3.73853} pt {-4.38155 
-3.67804 4.02765} pt {-3.60849 -3.68903 3.99648} pt {-4.41137 -4.15778 3.76362} 
pt {-3.59758 -4.17667 3.76157}}} {region_id} {1003} {material_id} {1} {los} 
{100}
-put {all.g} comb region no tree {u {u {l infinite.r} {l local.r}} {u {l 
plate.r} {l shadow_objs.r}}}
-")
-
-file(WRITE lights.asc "${lights_asc}")
-execute_process(COMMAND ${A2G} lights.asc lights.g)
-execute_process(COMMAND ${CMAKE_COMMAND} -E remove -f lights.asc)
-
-message("rendering lights...")
-set(vmat "
-viewsize 1.600000000000000e+02;
-orientation 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 
1.000000000000000e+00;
-eye_pt 0.000000000000000e+00 0.000000000000000e+00 7.950000000000000e+01;
-start 0; clean;
-end;
-
-")
-file(WRITE vmat.in "${vmat}")
-execute_process(COMMAND ${RT} -M -B -p30 -o lights.pix lights.g all.g 
INPUT_FILE vmat.in ERROR_FILE lights.log)
-execute_process(COMMAND ${CMAKE_COMMAND} -E remove -f vmat.in)
-
-execute_process(COMMAND ${PIXDIFF} lights.pix INPUT_FILE lights.pix 
OUTPUT_FILE lights_diff.pix ERROR_FILE lights_diff.log)
-
-file(READ lights_diff.log llog)
-file(APPEND lights.log "${llog}")
-string(REGEX REPLACE ".*([0-9]+) off by many.*" "\\1" n_wrong "${llog}")
-message("lights.pix ${n_wrong} off by many")
-execute_process(COMMAND ${CMAKE_COMMAND} -E remove -f lights_diff.log)
-
-if(${n_wrong} EQUAL 0)
-    message("-> lights.sh succeeded")
-else(${n_wrong} EQUAL 0)
-    message(FATAL_ERROR "-> lights.sh FAILED")
-endif(${n_wrong} EQUAL 0)
-
-
-
-# Local Variables:
-# tab-width: 8
-# mode: cmake
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=2 tabstop=8

Deleted: brlcad/trunk/regress/lights.ref.pix
===================================================================
(Binary files differ)

Deleted: brlcad/trunk/regress/lights.sh
===================================================================
--- brlcad/trunk/regress/lights.sh      2020-07-20 15:43:30 UTC (rev 76376)
+++ brlcad/trunk/regress/lights.sh      2020-07-20 19:45:30 UTC (rev 76377)
@@ -1,123 +0,0 @@
-#!/bin/sh
-#                       L I G H T S . S H
-# BRL-CAD
-#
-# Copyright (c) 2010-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-
-# Ensure /bin/sh
-export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
-
-# source common library functionality, setting ARGS, NAME_OF_THIS,
-# PATH_TO_THIS, and THIS.
-. "$1/regress/library.sh"
-
-if test "x$LOGFILE" = "x" ; then
-    LOGFILE=`pwd`/lights.log
-    rm -f $LOGFILE
-fi
-log "=== TESTING rendering with lights ==="
-
-RT="`ensearch rt`"
-if test ! -f "$RT" ; then
-    log "Unable to find rt, aborting"
-    exit 1
-fi
-A2G="`ensearch asc2g`"
-if test ! -f "$A2G" ; then
-    log "Unable to find asc2g, aborting"
-    exit 1
-fi
-PIXDIFF="`ensearch pixdiff`"
-if test ! -f "$PIXDIFF" ; then
-    log "Unable to find pixdiff, aborting"
-    exit 1
-fi
-
-rm -f lights.asc
-cat > lights.asc <<EOF
-title {Untitled BRL-CAD Database}
-units mm
-put {local} ell V {-4 -4 4} A {0.5 0 0} B {0 0.5 0} C {0 0 0.5}
-put {infinite} ell V {-4 4 4} A {0.5 0 0} B {0 0.5 0} C {0 0 0.5}
-put {plate.s} arb8 V1 {-30 -30 -1} V2 {30 -30 -1} V3 {30 30 -1} V4 {-30 30 -1} 
V5 {-30 -30 0} V6 {30 -30 0} V7 {30 30 0} V8 {-30 30 0}
-put {pole2.s} tgc V {9 2.5 1} H {0 0 10} A {0 -0.25 0} B {0.25 0 0} C {0 -0.25 
0} D {0.25 0 0}
-put {pole1.s} tgc V {-11 2.5 1} H {0 0 10} A {0 -0.25 0} B {0.25 0 0} C {0 
-0.25 0} D {0.25 0 0}
-put {ball2.s} ell V {10 0 5} A {2 0 0} B {0 2 0} C {0 0 2}
-put {ball1.s} ell V {-10 0 5} A {2 0 0} B {0 2 0} C {0 0 2}
-put {shadow_objs.r} comb region yes tree {u {u {l ball1.s} {l pole1.s}} {u {l 
ball2.s} {l pole2.s}}}
-attr set {shadow_objs.r} {region} {R} {los} {100} {material_id} {1} 
{region_id} {1001}
-put {plate.r} comb region yes tree {l plate.s}
-attr set {plate.r} {region} {R} {los} {100} {material_id} {1} {region_id} 
{1000}
-put {infinite.r} comb region yes tree {l infinite}
-attr set {infinite.r} {region} {R} {los} {100} {material_id} {1} {region_id} 
{1002} {oshader} {light {i 1 v 0}} {rgb} {255/255/255}
-put {local.r} comb region yes tree {l local}
-attr set {local.r} {region} {R} {rgb} {255/255/255} {oshader} {light {s 4  pt 
{-4.46848 -4.09864 4.1442} pt {-3.55149 -4.11535 4.18852} pt {-4.41469 -4.27933 
4.00234} pt {-3.62755 -4.33234 4.02878} pt {-4.09301 -4.44478 3.79139} pt 
{-4.10851 -3.55786 3.79328} pt {-3.63361 -4.2739 3.79817} pt {-3.62019 -3.74156 
3.80263} pt {-4.432 -3.88231 4.22254} pt {-3.59094 -3.85892 4.25053} pt 
{-3.85797 -4.45142 3.83861} pt {-3.84812 -3.55582 3.82785} pt {-4.16269 
-4.30592 4.36048} pt {-3.84629 -4.30072 4.3687} pt {-4.3644 -3.65806 3.98285} 
pt {-3.67668 -3.61863 3.99506} pt {-4.38028 -3.92574 4.31602} pt {-3.62451 
-3.93287 4.32327} pt {-4.36414 -3.6574 4.00475} pt {-3.66174 -3.63259 4.02432} 
pt {-4.27269 -3.6819 3.72714} pt {-3.71379 -3.68422 3.73853} pt {-4.38155 
-3.67804 4.02765} pt {-3.60849 -3.68903 3.99648} pt {-4.41137 -4.15778 3.76362} 
pt {-3.59758 -4.17667 3.76157}}} {region_id} {1003} {material_id} {1} {los} 
{100}
-put {all.g} comb region no tree {u {u {l infinite.r} {l local.r}} {u {l 
plate.r} {l shadow_objs.r}}}
-EOF
-
-run $A2G lights.asc lights.g
-
-log rendering lights...
-rm -f lights.pix
-$RT -M -B -p30 -o lights.pix lights.g 'all.g' >> $LOGFILE 2>&1 <<EOF
-viewsize 1.600000000000000e+02;
-orientation 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 
1.000000000000000e+00;
-eye_pt 0.000000000000000e+00 0.000000000000000e+00 7.950000000000000e+01;
-start 0; clean;
-end;
-EOF
-
-log "... running $PIXDIFF lights.pix $PATH_TO_THIS/lights.ref.pix > 
lights.diff.pix"
-rm -f lights.diff.pix
-$PIXDIFF lights.pix $PATH_TO_THIS/lights.ref.pix > lights.diff.pix 2>> $LOGFILE
-
-NUMBER_WRONG=`tail -n1 $LOGFILE | tr , '\012' | awk '/many/ {print $1}'`
-log "lights.pix $NUMBER_WRONG off by many"
-
-if [ X$NUMBER_WRONG = X0 ] ; then
-    log "-> lights.sh succeeded"
-else
-    log "-> lights.sh FAILED, see $LOGFILE"
-fi
-
-exit $NUMBER_WRONG
-
-# Local Variables:
-# mode: sh
-# tab-width: 8
-# sh-indentation: 4
-# sh-basic-offset: 4
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=4 tabstop=8

Modified: brlcad/trunk/regress/mged/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/mged/CMakeLists.txt    2020-07-20 15:43:30 UTC (rev 
76376)
+++ brlcad/trunk/regress/mged/CMakeLists.txt    2020-07-20 19:45:30 UTC (rev 
76377)
@@ -95,9 +95,30 @@
     BRLCAD_REGRESSION_TEST(regress-mged_${tname} "mged" TEST_SCRIPT 
"${TSCRIPT}" EXEC mged)
     DISTCLEAN("${LOG_FILE}")
   endforeach(testfile ${MGED_TESTS})
+
+  # Original shell based test
+  if (SH_EXEC)
+    add_test(NAME regress-mged COMMAND ${SH_EXEC} 
"${CMAKE_CURRENT_SOURCE_DIR}/mged.sh" ${CMAKE_SOURCE_DIR})
+    BRLCAD_REGRESSION_TEST(regress-mged mged TEST_DEFINED)
+  endif (SH_EXEC)
+
 endif (TARGET mged)
 
 CMAKEFILES(
+  mged.sh
+  mged_test.sh
+  )
+
+# list of temporary files
+set(mged_outfiles
+  mged.g
+  mged.log
+  )
+
+set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES 
"${mged_outfiles}")
+DISTCLEAN(${mged_outfiles})
+
+CMAKEFILES(
   CMakeLists.txt
   mged.tcl
   regression_resources.tcl

Copied: brlcad/trunk/regress/mged/mged.sh (from rev 76376, 
brlcad/branches/bioh/regress/mged/mged.sh)
===================================================================
--- brlcad/trunk/regress/mged/mged.sh                           (rev 0)
+++ brlcad/trunk/regress/mged/mged.sh   2020-07-20 19:45:30 UTC (rev 76377)
@@ -0,0 +1,200 @@
+#!/bin/sh
+#                       M G E D . S H
+# BRL-CAD
+#
+# Copyright (c) 2008-2020 United States Government as represented by
+# the U.S. Army Research Laboratory.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# 3. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+###
+#
+# Basic series of MGED sanity checks
+#
+###
+
+# Ensure /bin/sh
+export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
+
+# source common library functionality, setting ARGS, NAME_OF_THIS,
+# PATH_TO_THIS, and THIS.
+. "$1/regress/library.sh"
+
+# log output to this file
+if test "x$LOGFILE" = "x" ; then
+    LOGFILE=`pwd`/mged.log
+    rm -f $LOGFILE
+fi
+log "=== TESTING mged commands ==="
+
+# don't pop up a window on the commands that invoke tk
+DISPLAY=/dev/null
+export DISPLAY
+
+MGED="`ensearch mged`"
+if test ! -f "$MGED" ; then
+    log "Unable to find mged, aborting"
+    exit 1
+fi
+
+# run this many commands in parallel
+NPSW=64
+
+
+# test a single command, return 0 if successful
+check_command ( ) {
+    cmd="$1"
+
+    # make sure command exists and will run without error
+    output="`$MGED -c mged.g $cmd 2>&1`"
+    if test $? != 0 ; then
+       log "ERROR: $cmd returned non-zero exit status $?"
+       log "Output: $output"
+       return 1
+    fi
+    if test "x`echo \"$output\" | grep -i invalid`" != "x" ; then
+       log "ERROR: $cmd does not exist!"
+       log "Output: $output"
+       return 1
+    fi
+    if test "x`echo \"$output\" | grep -i error | grep -i -v _error | grep -i 
-v error_`" != "x" ; then
+       log "ERROR: $cmd reported an error on default use"
+       log "Output: $output"
+       return 1
+    fi
+
+    # make sure command has help listed
+    output="`$MGED -c mged.g help $cmd 2>&1`"
+    if test "x`echo \"$output\" | grep -i 'no help found'`" != "x" ; then
+       log "ERROR: $cmd does not have help"
+       return 1
+    fi
+
+    return 0
+}
+
+touch mged.g
+output="`$MGED -c mged.g quit 2>&1`"
+if test $? != 0 ; then
+    log "Output: $output"
+    log "Unable to run mged, aborting"
+    exit 1
+fi
+
+log "seting up an almost empty database (mged.g) to make sure mged runs"
+rm -f mged.g
+$MGED -c >> $LOGFILE 2>&1 <<EOF
+opendb mged.g y
+in t.s sph 0 0 0 1
+r t.r u t.s
+g all t.r
+quit
+EOF
+if test ! -f mged.g ; then
+    cat $LOGFILE
+    log "ERROR: Test file 'mged.g' is missing. Unable to run mged, aborting"
+    exit 1
+fi
+
+log "testing mged commands..."
+
+# collect all current commands
+cmds="`$MGED -c mged.g '?' 2>&1 | grep -v Using`"
+help="`$MGED -c mged.g help 2>&1 | grep -v Using`"
+# cmds="$cmds `$MGED -c mged.g ?lib 2>&1`"
+# cmds="$cmds `$MGED -c mged.g ?devel 2>&1`"
+
+# turn off globbing as some of mged's commands have glob characters
+set -f
+
+# test all commands
+FAILED=0
+workers=0
+pids=""
+for cmd in $cmds ; do
+    log "...$cmd"
+
+    # BEGIN SPECIALIZATIONS
+    # FIXME: there should be NO specializations
+    if test "x$cmd" = "x%" ; then
+       # % is special because it invokes a shell
+       $MGED -c mged.g $cmd > /dev/null 2>&1 <<EOF
+exit
+EOF
+       if test $? != 0 ; then
+           log "ERROR: $cmd returned non-zero exit status $?"
+           FAILED="`expr $FAILED + 1`"
+       fi
+       continue
+    elif test "x$cmd" = "xedcolor" ; then
+       # edcolor it kicks off an editor, ugh
+       log "FIXME: Unable to test edcolor"
+       log "It probably shouldn't kick off an editor without an argument"
+       continue
+    elif test "x$cmd" = "xgraph" ; then
+       continue
+    elif test "x$cmd" = "xigraph" ; then
+       continue
+    fi
+    # END OF SPECIALIZATIONS
+
+    check_command "$cmd" &
+    pids="$pids $!"
+
+    workers="`expr $workers + 1`"
+    if ! test $workers -lt $NPSW ; then
+       for pid in $pids ; do
+           wait $pid
+           if test $? != 0 ; then
+               FAILED="`expr $FAILED + 1`"
+           fi
+       done
+       pids=""
+       workers=0
+    fi
+done
+
+
+if test $FAILED -eq 0 ; then
+    log "-> mged check succeeded"
+else
+    log "-> mged check FAILED, see $LOGFILE"
+fi
+
+exit $FAILED
+
+
+# Local Variables:
+# tab-width: 8
+# mode: sh
+# sh-indentation: 4
+# sh-basic-offset: 4
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=4 tabstop=8

Copied: brlcad/trunk/regress/mged/mged_test.sh (from rev 76376, 
brlcad/branches/bioh/regress/mged/mged_test.sh)
===================================================================
--- brlcad/trunk/regress/mged/mged_test.sh                              (rev 0)
+++ brlcad/trunk/regress/mged/mged_test.sh      2020-07-20 19:45:30 UTC (rev 
76377)
@@ -0,0 +1,1538 @@
+#!/bin/sh
+#                    M G E D _ T E S T . S H
+# BRL-CAD
+#
+# Copyright (c) 2010-2020 United States Government as represented by
+# the U.S. Army Research Laboratory.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above

@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to