]> git.draconx.ca Git - liblbx.git/blob - tests/regress.sh
build: Use a non-recursive makefile.
[liblbx.git] / tests / regress.sh
1 #!/bin/sh
2 # Simple test which decodes some images from LBX archives and compares against
3 # known md5sums to find regressions.  Unforuntately depends on the output
4 # format of lbximg; this may change in the future.
5
6 # Image/tool paths.  Adjust to taste.  The DATADIR must contain the original
7 # Moo2 LBX archives, with filenames in lower case.
8 DATADIR=$HOME/.2oom/game
9 LBXTOOL="`readlink -f ../lbxtool`"
10 LBXIMG="`readlink -f ../lbximg`"
11
12 # Status vars
13 FAILED=0
14
15 if ! SCRATCH="`mktemp -d`"; then
16         exit 1
17 fi
18
19 cd "$SCRATCH"
20 echo "Working in $SCRATCH"
21
22 # Palettes
23 $LBXTOOL -xf $DATADIR/fonts.lbx
24
25 compare()
26 {
27         echo -n "  Frame $1 "
28         FILE="$(printf 'out.%03d.png' $1)"
29         MD5="$(md5sum "$FILE" | cut -d ' ' -f 1)"
30         if [ "$MD5" = "$2" ]; then
31                 echo "OK"
32                 rm -f "$FILE"
33         else
34                 echo "FAILED"
35                 FAILED=`expr $FAILED + 1`
36         fi
37 }
38
39 # Main menu
40 $LBXTOOL -xf $DATADIR/mainmenu.lbx mainmenu.lbx.{000,007,021}
41
42 echo "mainmenu.lbx.021: single frame, embedded palette:"
43 $LBXIMG -df mainmenu.lbx.021
44 compare 0 390c49cfd1fe5e2ac0490be976f20936
45
46 echo "mainmenu.lbx.007: single frame, external palette:"
47 $LBXIMG -dp fonts.lbx.006 < mainmenu.lbx.007
48 compare 0 76def3e188f666025c62e621e23ab0d0
49
50 echo "mainmenu.lbx.000: multi frame, external palette:"
51 $LBXIMG -dp fonts.lbx.006 < mainmenu.lbx.000 0 15 49
52 compare  0 cc4ae6d96f6233f3b50bdce8b7ca74ee
53 compare 15 cad158da9a015adfcea7809a8a3b6f4b
54 compare 49 390c49cfd1fe5e2ac0490be976f20936
55
56 # Logos
57 $LBXTOOL -xf $DATADIR/logo.lbx 
58
59 echo "logo.lbx.000: single frame, embedded palette, transparency:"
60 $LBXIMG -df logo.lbx.000
61 compare 0 5cc8d2b761390d15be2738030c658bfc
62
63 echo "logo.lbx.001: multi frame, embedded palette:"
64 $LBXIMG -df logo.lbx.001 0 30 63
65 compare  0 f3f0859b39f2e76091842c8a7276b2a1
66 compare 30 8fb41356a20c68c3be0939ad49256cf9
67 compare 63 156f381c5d4bf6178affd3d6a4720118
68
69 # Ships
70 $LBXTOOL -xf $DATADIR/ships.lbx ships.lbx.{042,049}
71
72 echo "ships.lbx.042: single frame, external+override palette, transparency:"
73 $LBXIMG -df ships.lbx.042 -p fonts.lbx.012 -O ships.lbx.049
74 compare 0 bd643736d46ef387bcffcc8803aabb83
75
76 # Clean up
77 if [ $FAILED -eq 0 ]; then
78         echo "All tests completed successfully."
79         rm -rf -- "$SCRATCH"
80 else
81         echo "$FAILED test(s) FAILED"
82 fi