Add autopkgtests.
authorRyan Pavlik <ryan.pavlik@collabora.com>
Thu, 21 Jan 2021 17:07:40 +0000 (11:07 -0600)
committerRyan Pavlik <ryan.pavlik@collabora.com>
Thu, 21 Jan 2021 17:07:40 +0000 (11:07 -0600)
debian/tests/common [new file with mode: 0644]
debian/tests/control [new file with mode: 0644]
debian/tests/htmlmesh [new file with mode: 0755]
debian/tests/stlmesh [new file with mode: 0755]
debian/tests/surfaces [new file with mode: 0755]
debian/tests/thumbnail [new file with mode: 0755]
debian/tests/view [new file with mode: 0755]
debian/tests/wireframe [new file with mode: 0755]

diff --git a/debian/tests/common b/debian/tests/common
new file mode 100644 (file)
index 0000000..df86ee9
--- /dev/null
@@ -0,0 +1,14 @@
+
+get_all_files() {
+    find -name "*.slvs"
+}
+
+get_files_with_surfaces() {
+    # Can't export the mesh/surfaces of a file with no 3d in it, just 2d
+    get_all_files | grep -E -v "(constraint)|(request)|(link)|(contour_area)"
+}
+
+get_files_to_thumbnail() {
+    # Can't thumbnail files with embedded images: https://github.com/solvespace/solvespace/issues/905
+    get_all_files | grep -v "image"
+}
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644 (file)
index 0000000..f99a8e4
--- /dev/null
@@ -0,0 +1,3 @@
+Tests: htmlmesh, stlmesh, surfaces, thumbnail, view, wireframe
+Depends: solvespace, find, grep
+Restrictions: allow-stderr
diff --git a/debian/tests/htmlmesh b/debian/tests/htmlmesh
new file mode 100755 (executable)
index 0000000..f2a6323
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+set -x
+. debian/tests/common
+logname=$AUTOPKGTEST_TMP/html_mesh.txt
+(
+    get_files_with_surfaces | while read fn; do
+        echo $fn
+        mkdir -p $AUTOPKGTEST_TMP/$(dirname $fn)
+        solvespace-cli export-mesh --output $AUTOPKGTEST_TMP/%_mesh.html $fn
+    done
+) 2>&1 | tee $logname
+
+# We don't care about self-intersecting errors.
+! (grep "Error" $logname | grep -v "self-intersecting")
diff --git a/debian/tests/stlmesh b/debian/tests/stlmesh
new file mode 100755 (executable)
index 0000000..eb3b218
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+set -x
+. debian/tests/common
+logname=$AUTOPKGTEST_TMP/stl_mesh.txt
+(
+    get_files_with_surfaces | while read fn; do
+        echo $fn
+        mkdir -p $AUTOPKGTEST_TMP/$(dirname $fn)
+        solvespace-cli export-mesh --output $AUTOPKGTEST_TMP/%_mesh.stl $fn
+    done
+) 2>&1 | tee $logname
+
+# We don't care about self-intersecting errors.
+! (grep "Error" $logname | grep -v "self-intersecting")
diff --git a/debian/tests/surfaces b/debian/tests/surfaces
new file mode 100755 (executable)
index 0000000..42c5bd1
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+set -e
+set -x
+. debian/tests/common
+logname=$AUTOPKGTEST_TMP/surfaces.txt
+(
+    get_files_with_surfaces | while read fn; do
+        echo $fn
+        mkdir -p $AUTOPKGTEST_TMP/$(dirname $fn)
+        solvespace-cli export-surfaces --output $AUTOPKGTEST_TMP/%_surfaces.step $fn
+    done
+) 2>&1 | tee $logname
+
+! grep "Error" $logname
diff --git a/debian/tests/thumbnail b/debian/tests/thumbnail
new file mode 100755 (executable)
index 0000000..7adf97e
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+set -x
+. debian/tests/common
+logname=$AUTOPKGTEST_TMP/thumbnail.txt
+(
+    get_files_to_thumbnail | while read fn; do
+        echo $fn
+        mkdir -p $AUTOPKGTEST_TMP/$(dirname $fn)
+        solvespace-cli thumbnail --output $AUTOPKGTEST_TMP/%_thumb.png --size 48x48 --view isometric $fn
+    done
+) 2>&1 | tee $logname
+
+# We don't care about self-intersecting errors.
+! grep "Error" $logname
diff --git a/debian/tests/view b/debian/tests/view
new file mode 100755 (executable)
index 0000000..7f709cc
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+set -e
+set -x
+. debian/tests/common
+logname=$AUTOPKGTEST_TMP/view.txt
+(
+    get_all_files | while read fn; do
+        echo $fn
+        mkdir -p $AUTOPKGTEST_TMP/$(dirname $fn)
+        solvespace-cli export-view --output $AUTOPKGTEST_TMP/%_view.pdf --view isometric $fn
+    done
+) 2>&1 | tee $logname
+
+! grep "Error" $logname
diff --git a/debian/tests/wireframe b/debian/tests/wireframe
new file mode 100755 (executable)
index 0000000..15d5205
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+set -e
+set -x
+. debian/tests/common
+logname=$AUTOPKGTEST_TMP/wireframe.txt
+(
+    get_all_files | while read fn; do
+        echo $fn
+        mkdir -p $AUTOPKGTEST_TMP/$(dirname $fn)
+        solvespace-cli export-wireframe --output $AUTOPKGTEST_TMP/%_wireframe.dxf $fn
+    done
+) 2>&1 | tee $logname
+
+! grep "Error" $logname