|
|
1.1 root 1: #!/bin/sh
2: #
3: # Check whether loading and saving of config files works as expected
4:
5: if [ $# -ne 1 -o "$1" = "-h" -o "$1" = "--help" ]; then
6: echo "Usage: $0 <hatari>"
7: exit 1;
8: fi
9:
10: hatari=$1
11: shift
12: if [ ! -x "$hatari" ]; then
13: echo "First parameter must point to valid hatari executable."
14: exit 1;
15: fi;
16:
17: testdir=$(mktemp -d)
18: cfgfile="$testdir"/.config/hatari/hatari.cfg
19:
20: remove_temp() {
21: rm -rf "$testdir"
22: }
23: trap remove_temp EXIT
24:
25: keymap="$testdir"/keymap.txt
26: echo "# Temp file" > "$keymap"
27:
28: acsifile="$testdir"/acsi.img
29: dd if=/dev/zero of="$acsifile" bs=512 count=1000 2> /dev/null
30: scsifile="$testdir"/scsi.img
31: dd if=/dev/zero of="$scsifile" bs=512 count=1000 2> /dev/null
32: idefile="$testdir"/ide.img
33: dd if=/dev/zero of="$idefile" bs=512 count=1000 2> /dev/null
34:
35: export SDL_VIDEODRIVER=dummy
36: export SDL_AUDIODRIVER=dummy
37: export HOME="$testdir"
38: unset TERM
39:
40: $hatari --log-level fatal --sound off --tos none --confirm-quit false \
41: --machine tt --cpulevel 4 --cpuclock 16 --vdi 1 --drive-led 0 \
42: --monitor tv --frameskips 3 --mousewarp off --statusbar FALSE \
43: --disasm uae --joy0 keys --keymap "$keymap" --crop 1 --fast-boot 1 \
44: --protect-floppy auto --gemdos-case upper --acsi 3="$acsifile" \
45: --scsi 5="$scsifile" --ide-master "$idefile" --patch-tos off \
46: --rs232-out "$testdir"/serial-out.txt --rs232-in /dev/null \
47: --printer /dev/zero --avi-fps 60 --memsize 0 --alert-level fatal \
48: --saveconfig >"$testdir/out.txt" 2>&1
49: exitstat=$?
50: if [ $exitstat -ne 0 ]; then
51: echo "Running hatari with parameters FAILED. Status = ${exitstat}."
52: cat "$testdir/out.txt"
53: exit 1
54: fi
55:
56: echo "############################## Log file: ##############################"
57: cat $cfgfile
58:
59: # Check whether the command line options have been included in the config file:
60: echo "#################### Looking for expected settings: ###################"
61: grep "nTextLogLevel = 0" $cfgfile || exit 1
62: grep "bEnableSound = FALSE" $cfgfile || exit 1
63: grep "bConfirmQuit = FALSE" $cfgfile || exit 1
64: grep "nModelType = 4" $cfgfile || exit 1
65: grep "nCpuLevel = 4" $cfgfile || exit 1
66: grep "nCpuFreq = 16" $cfgfile || exit 1
67: grep "bUseExtVdiResolutions = TRUE" $cfgfile || exit 1
68: grep "bShowDriveLed = FALSE" $cfgfile || exit 1
69: grep "nMonitorType = 3" $cfgfile || exit 1
70: grep "nFrameSkips = 3" $cfgfile || exit 1
71: grep "bMouseWarp = FALSE" $cfgfile || exit 1
72: grep "bShowStatusbar = FALSE" $cfgfile || exit 1
73: grep "bDisasmUAE = TRUE" $cfgfile || exit 1
74: grep "nJoystickMode = 2" $cfgfile || exit 1
75: grep "szMappingFileName = $keymap" $cfgfile || exit 1
76: grep "nMemorySize = 512" $cfgfile || exit 1
77: grep "nWriteProtection = 2" $cfgfile || exit 1
78: grep "nGemdosCase = 1" $cfgfile || exit 1
79: grep "sDeviceFile3 = $acsifile" $cfgfile || exit 1
80: grep "sDeviceFile5 = $scsifile" $cfgfile || exit 1
81: grep "sDeviceFile0 = $idefile" $cfgfile || exit 1
82: grep "bPatchTos = FALSE" $cfgfile || exit 1
83: grep "bEnableRS232 = TRUE" $cfgfile || exit 1
84: grep "szOutFileName = $testdir/serial-out.txt" $cfgfile || exit 1
85: grep "szInFileName = /dev/null" $cfgfile || exit 1
86: grep "bEnablePrinting = TRUE" $cfgfile || exit 1
87: grep "szPrintToFileName = /dev/zero" $cfgfile || exit 1
88: grep "bCrop = TRUE" $cfgfile || exit 1
89: grep "AviRecordFps = 60" $cfgfile || exit 1
90: grep "nAlertDlgLogLevel = 0" $cfgfile || exit 1
91:
92: echo "######################################################################"
93:
94: # Now check that we can load and save the same config file again:
95:
96: touch "$testdir"/test.cfg
97: cat > "$testdir"/commands.txt << EOF
98: setopt -c $testdir/test.cfg
99: setopt --saveconfig
100: EOF
101:
102: $hatari --tos none --parse "$testdir"/commands.txt >"$testdir/out.txt" 2>&1
103: exitstat=$?
104: if [ $exitstat -ne 0 ]; then
105: echo "Running hatari -c ${testdir}/test.cfg FAILED. Status ${exitstat}."
106: cat "$testdir"/out.txt
107: exit 1
108: fi
109:
110: if ! diff -q "$cfgfile" "$testdir"/test.cfg ; then
111: echo "Test FAILED, config files differs:"
112: diff -u "$cfgfile" "$testdir"/test.cfg
113: exit 1
114: fi
115:
116: echo "Test PASSED."
117: exit 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.