diff --git a/icemulti/Makefile b/icemulti/Makefile index 530215881c1..a86e8c1b557 100644 --- a/icemulti/Makefile +++ b/icemulti/Makefile @@ -9,6 +9,9 @@ all: icemulti$(EXE) icemulti$(EXE): icemulti.o $(CXX) -o $@ $(LDFLAGS) $^ $(LDLIBS) +check: all + cd tests; ./run-tests + install: all mkdir -p $(DESTDIR)$(PREFIX)/bin cp icemulti$(EXE) $(DESTDIR)$(PREFIX)/bin/icemulti$(EXE) @@ -23,5 +26,5 @@ clean: -include *.d -.PHONY: all install uninstall clean +.PHONY: all check install uninstall clean diff --git a/icemulti/tests/image0 b/icemulti/tests/image0 new file mode 100644 index 00000000000..3c2f99e703b --- /dev/null +++ b/icemulti/tests/image0 @@ -0,0 +1 @@ +IMG0Ӂ^, u'END0 \ No newline at end of file diff --git a/icemulti/tests/image1 b/icemulti/tests/image1 new file mode 100644 index 00000000000..9ebc6262b0e --- /dev/null +++ b/icemulti/tests/image1 @@ -0,0 +1 @@ +IMG1  sQ}`#Zd ࿇ k.җ< 4^l[ҾEND1 \ No newline at end of file diff --git a/icemulti/tests/image2 b/icemulti/tests/image2 new file mode 100644 index 00000000000..154775e320e Binary files /dev/null and b/icemulti/tests/image2 differ diff --git a/icemulti/tests/image3 b/icemulti/tests/image3 new file mode 100644 index 00000000000..b40deb6f73f Binary files /dev/null and b/icemulti/tests/image3 differ diff --git a/icemulti/tests/list b/icemulti/tests/list new file mode 100644 index 00000000000..09387d1d527 --- /dev/null +++ b/icemulti/tests/list @@ -0,0 +1,162 @@ +tc-0-0.sha256 ../icemulti image0 +tc-0-00.sha256 ../icemulti image0 image0 +tc-0-000.sha256 ../icemulti image0 image0 image0 +tc-0-0000.sha256 ../icemulti image0 image0 image0 image0 +tc-0-0001.sha256 ../icemulti image0 image0 image0 image1 +tc-0-001.sha256 ../icemulti image0 image0 image1 +tc-0-0010.sha256 ../icemulti image0 image0 image1 image0 +tc-0-0011.sha256 ../icemulti image0 image0 image1 image1 +tc-0-0012.sha256 ../icemulti image0 image0 image1 image2 +tc-0-01.sha256 ../icemulti image0 image1 +tc-0-010.sha256 ../icemulti image0 image1 image0 +tc-0-0100.sha256 ../icemulti image0 image1 image0 image0 +tc-0-0101.sha256 ../icemulti image0 image1 image0 image1 +tc-0-0102.sha256 ../icemulti image0 image1 image0 image2 +tc-0-011.sha256 ../icemulti image0 image1 image1 +tc-0-0110.sha256 ../icemulti image0 image1 image1 image0 +tc-0-0111.sha256 ../icemulti image0 image1 image1 image1 +tc-0-0112.sha256 ../icemulti image0 image1 image1 image2 +tc-0-012.sha256 ../icemulti image0 image1 image2 +tc-0-0120.sha256 ../icemulti image0 image1 image2 image0 +tc-0-0121.sha256 ../icemulti image0 image1 image2 image1 +tc-0-0122.sha256 ../icemulti image0 image1 image2 image2 +tc-0-0123.sha256 ../icemulti image0 image1 image2 image3 +tc-0-0.sha256 ../icemulti -p0 image0 +tc-0-00.sha256 ../icemulti -p0 image0 image0 +tc-0-000.sha256 ../icemulti -p0 image0 image0 image0 +tc-0-0000.sha256 ../icemulti -p0 image0 image0 image0 image0 +tc-0-0001.sha256 ../icemulti -p0 image0 image0 image0 image1 +tc-0-001.sha256 ../icemulti -p0 image0 image0 image1 +tc-0-0010.sha256 ../icemulti -p0 image0 image0 image1 image0 +tc-0-0011.sha256 ../icemulti -p0 image0 image0 image1 image1 +tc-0-0012.sha256 ../icemulti -p0 image0 image0 image1 image2 +tc-0-01.sha256 ../icemulti -p0 image0 image1 +tc-0-010.sha256 ../icemulti -p0 image0 image1 image0 +tc-0-0100.sha256 ../icemulti -p0 image0 image1 image0 image0 +tc-0-0101.sha256 ../icemulti -p0 image0 image1 image0 image1 +tc-0-0102.sha256 ../icemulti -p0 image0 image1 image0 image2 +tc-0-011.sha256 ../icemulti -p0 image0 image1 image1 +tc-0-0110.sha256 ../icemulti -p0 image0 image1 image1 image0 +tc-0-0111.sha256 ../icemulti -p0 image0 image1 image1 image1 +tc-0-0112.sha256 ../icemulti -p0 image0 image1 image1 image2 +tc-0-012.sha256 ../icemulti -p0 image0 image1 image2 +tc-0-0120.sha256 ../icemulti -p0 image0 image1 image2 image0 +tc-0-0121.sha256 ../icemulti -p0 image0 image1 image2 image1 +tc-0-0122.sha256 ../icemulti -p0 image0 image1 image2 image2 +tc-0-0123.sha256 ../icemulti -p0 image0 image1 image2 image3 +tc-1-00.sha256 ../icemulti -p1 image0 image0 +tc-1-000.sha256 ../icemulti -p1 image0 image0 image0 +tc-1-0000.sha256 ../icemulti -p1 image0 image0 image0 image0 +tc-1-0001.sha256 ../icemulti -p1 image0 image0 image0 image1 +tc-1-001.sha256 ../icemulti -p1 image0 image0 image1 +tc-1-0010.sha256 ../icemulti -p1 image0 image0 image1 image0 +tc-1-0011.sha256 ../icemulti -p1 image0 image0 image1 image1 +tc-1-0012.sha256 ../icemulti -p1 image0 image0 image1 image2 +tc-1-01.sha256 ../icemulti -p1 image0 image1 +tc-1-010.sha256 ../icemulti -p1 image0 image1 image0 +tc-1-0100.sha256 ../icemulti -p1 image0 image1 image0 image0 +tc-1-0101.sha256 ../icemulti -p1 image0 image1 image0 image1 +tc-1-0102.sha256 ../icemulti -p1 image0 image1 image0 image2 +tc-1-011.sha256 ../icemulti -p1 image0 image1 image1 +tc-1-0110.sha256 ../icemulti -p1 image0 image1 image1 image0 +tc-1-0111.sha256 ../icemulti -p1 image0 image1 image1 image1 +tc-1-0112.sha256 ../icemulti -p1 image0 image1 image1 image2 +tc-1-012.sha256 ../icemulti -p1 image0 image1 image2 +tc-1-0120.sha256 ../icemulti -p1 image0 image1 image2 image0 +tc-1-0121.sha256 ../icemulti -p1 image0 image1 image2 image1 +tc-1-0122.sha256 ../icemulti -p1 image0 image1 image2 image2 +tc-1-0123.sha256 ../icemulti -p1 image0 image1 image2 image3 +tc-2-000.sha256 ../icemulti -p2 image0 image0 image0 +tc-2-0000.sha256 ../icemulti -p2 image0 image0 image0 image0 +tc-2-0001.sha256 ../icemulti -p2 image0 image0 image0 image1 +tc-2-001.sha256 ../icemulti -p2 image0 image0 image1 +tc-2-0010.sha256 ../icemulti -p2 image0 image0 image1 image0 +tc-2-0011.sha256 ../icemulti -p2 image0 image0 image1 image1 +tc-2-0012.sha256 ../icemulti -p2 image0 image0 image1 image2 +tc-2-010.sha256 ../icemulti -p2 image0 image1 image0 +tc-2-0100.sha256 ../icemulti -p2 image0 image1 image0 image0 +tc-2-0101.sha256 ../icemulti -p2 image0 image1 image0 image1 +tc-2-0102.sha256 ../icemulti -p2 image0 image1 image0 image2 +tc-2-011.sha256 ../icemulti -p2 image0 image1 image1 +tc-2-0110.sha256 ../icemulti -p2 image0 image1 image1 image0 +tc-2-0111.sha256 ../icemulti -p2 image0 image1 image1 image1 +tc-2-0112.sha256 ../icemulti -p2 image0 image1 image1 image2 +tc-2-012.sha256 ../icemulti -p2 image0 image1 image2 +tc-2-0120.sha256 ../icemulti -p2 image0 image1 image2 image0 +tc-2-0121.sha256 ../icemulti -p2 image0 image1 image2 image1 +tc-2-0122.sha256 ../icemulti -p2 image0 image1 image2 image2 +tc-2-0123.sha256 ../icemulti -p2 image0 image1 image2 image3 +tc-3-0000.sha256 ../icemulti -p3 image0 image0 image0 image0 +tc-3-0001.sha256 ../icemulti -p3 image0 image0 image0 image1 +tc-3-0010.sha256 ../icemulti -p3 image0 image0 image1 image0 +tc-3-0011.sha256 ../icemulti -p3 image0 image0 image1 image1 +tc-3-0012.sha256 ../icemulti -p3 image0 image0 image1 image2 +tc-3-0100.sha256 ../icemulti -p3 image0 image1 image0 image0 +tc-3-0101.sha256 ../icemulti -p3 image0 image1 image0 image1 +tc-3-0102.sha256 ../icemulti -p3 image0 image1 image0 image2 +tc-3-0110.sha256 ../icemulti -p3 image0 image1 image1 image0 +tc-3-0111.sha256 ../icemulti -p3 image0 image1 image1 image1 +tc-3-0112.sha256 ../icemulti -p3 image0 image1 image1 image2 +tc-3-0120.sha256 ../icemulti -p3 image0 image1 image2 image0 +tc-3-0121.sha256 ../icemulti -p3 image0 image1 image2 image1 +tc-3-0122.sha256 ../icemulti -p3 image0 image1 image2 image2 +tc-3-0123.sha256 ../icemulti -p3 image0 image1 image2 image3 + +tc-0-0-coldboot.sha256 ../icemulti -c image0 +tc-0-01-coldboot.sha256 ../icemulti -c image0 image1 +tc-0-012-coldboot.sha256 ../icemulti -c image0 image1 image2 +tc-0-0123-coldboot.sha256 ../icemulti -c image0 image1 image2 image3 + +tc-0-0.sha256 ../icemulti -a0 image0 +tc-0-01.sha256 ../icemulti -a0 image0 image1 +tc-0-012.sha256 ../icemulti -a0 image0 image1 image2 +tc-0-0123.sha256 ../icemulti -a0 image0 image1 image2 image3 + +tc-0-0.sha256 ../icemulti -A0 image0 +tc-0-01.sha256 ../icemulti -A0 image0 image1 +tc-0-012.sha256 ../icemulti -A0 image0 image1 image2 +tc-0-0123.sha256 ../icemulti -A0 image0 image1 image2 image3 + +tc-0-0.sha256 ../icemulti -a5 image0 +tc-0-01-a32.sha256 ../icemulti -a5 image0 image1 +tc-0-012-a32.sha256 ../icemulti -a5 image0 image1 image2 +tc-0-0123-a32.sha256 ../icemulti -a5 image0 image1 image2 image3 + +tc-0-0.sha256 ../icemulti -A5 image0 +tc-0-01-a32.sha256 ../icemulti -A5 image0 image1 +tc-0-012-a32.sha256 ../icemulti -A5 image0 image1 image2 +tc-0-0123-a32.sha256 ../icemulti -A5 image0 image1 image2 image3 + +tc-0-0.sha256 ../icemulti -a10 image0 +tc-0-01-a1k.sha256 ../icemulti -a10 image0 image1 +tc-0-012-a1k.sha256 ../icemulti -a10 image0 image1 image2 +tc-0-0123-a1k.sha256 ../icemulti -a10 image0 image1 image2 image3 + +tc-0-0-A1k.sha256 ../icemulti -A10 image0 +tc-0-01-A1k.sha256 ../icemulti -A10 image0 image1 +tc-0-012-A1k.sha256 ../icemulti -A10 image0 image1 image2 +tc-0-0123-A1k.sha256 ../icemulti -A10 image0 image1 image2 image3 + +ERR ../icemulti +ERR ../icemulti -c +ERR ../icemulti -p0 +ERR ../icemulti -a0 +ERR ../icemulti -A0 +ERR ../icemulti -o tmp +ERR ../icemulti -v +ERR ../icemulti image0 -p +ERR ../icemulti image0 -a +ERR ../icemulti image0 -A +ERR ../icemulti image0 -o +ERR ../icemulti image0 -Y +ERR ../icemulti image0 image0 image0 image0 image0 + +ERR ../icemulti -p4 image0 +ERR ../icemulti -p-1 image0 +ERR ../icemulti -px image0 +ERR ../icemulti -p1 image0 +ERR ../icemulti -p2 image0 +ERR ../icemulti -p2 image0 image1 +ERR ../icemulti -p3 image0 +ERR ../icemulti -p3 image0 image1 +ERR ../icemulti -p3 image0 image1 image2 diff --git a/icemulti/tests/run-tests b/icemulti/tests/run-tests new file mode 100755 index 00000000000..932f2ec3061 --- /dev/null +++ b/icemulti/tests/run-tests @@ -0,0 +1,32 @@ +#!/bin/bash + +while read name cmd; do + if [ x"${name}" = x ]; then + : + elif [ x"${name}" = xERR ]; then + if sh -c "${cmd}" >out.$$ 2>err.$$; then + echo + echo "FAIL: ${cmd}" + od -A x -t x2z -v err.$$ | sha256sum | + diff -u "${name}" - >out.$$ 2>&1; then + echo -n . + else + echo + echo "FAIL: ${cmd}" + cat out.$$ err.$$ + rm -f out.$$ err.$$ + exit 1 + fi + fi +done