summaryrefslogtreecommitdiff
path: root/archived/less_old_sim8086/misc
diff options
context:
space:
mode:
authorRaymaekers Luca <luca@spacehb.net>2025-08-23 16:22:13 +0200
committerRaymaekers Luca <luca@spacehb.net>2025-08-23 16:22:13 +0200
commitea20bd9b5bcff9db1d86d83188e1e899799f324b (patch)
tree615e2f00e385e93061524c9647b64010ba7df3dd /archived/less_old_sim8086/misc
checkpoint
Diffstat (limited to 'archived/less_old_sim8086/misc')
-rwxr-xr-xarchived/less_old_sim8086/misc/test_listing50
-rwxr-xr-xarchived/less_old_sim8086/misc/test_source_line_by_line80
2 files changed, 130 insertions, 0 deletions
diff --git a/archived/less_old_sim8086/misc/test_listing b/archived/less_old_sim8086/misc/test_listing
new file mode 100755
index 0000000..472c0d2
--- /dev/null
+++ b/archived/less_old_sim8086/misc/test_listing
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+NoColor=
+if [ "$1" = "--no-color" ]
+then
+ NoColor=1
+ shift
+fi
+
+ThisDir="$(dirname "$(readlink -f "$0")")"
+
+for File in $@
+do
+ File="$(readlink -f "$File")"
+ [ "$File" ] || exit 1
+
+ (
+ cd "$ThisDir"
+
+ SourceFile="$File"
+ SourceFile="${File%.asm}.asm"
+ [ -r "$SourceFile" ] || exit 1
+
+ ErrorFile="../build/error"
+ TestSource="../build/first"
+ OutFile="../build/$(basename "${SourceFile%.asm}")"
+ nasm -o "$OutFile" "$SourceFile" 2> "$ErrorFile"
+ ../build/sim8086 "$OutFile" > "$TestSource".asm 2>> "$ErrorFile"
+ nasm -o "${TestSource}" "$TestSource".asm 2>> "$ErrorFile"
+
+ RelPath="$(realpath --relative-to=. "$SourceFile")"
+ if diff -q "$TestSource" "$OutFile" > /dev/null 2>> "$ErrorFile"
+ then
+ if [ "$NoColor" ]
+ then
+ printf ' PASSED: '\''%s'\''\n' "$RelPath"
+ else
+ printf '\033[32m PASSED: '\''%s'\''\033[0m\n' "$RelPath"
+ fi
+ else
+ if [ "$NoColor" ]
+ then
+ printf ' FAILED: '\''%s'\''\n' "$RelPath"
+ else
+ printf '\033[31m FAILED: '\''%s'\''\033[0m\n' "$RelPath"
+ fi
+ cat "$ErrorFile" | sed 's/.*/ &/'
+ fi
+ )
+done
diff --git a/archived/less_old_sim8086/misc/test_source_line_by_line b/archived/less_old_sim8086/misc/test_source_line_by_line
new file mode 100755
index 0000000..dbf657c
--- /dev/null
+++ b/archived/less_old_sim8086/misc/test_source_line_by_line
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+PauseOnFail=
+if [ "$1" = "--pause-on-fail" ]
+then
+ PauseOnFail=1
+ shift
+fi
+
+NoColor=
+if [ "$1" = "--no-color" ]
+then
+ NoColor=1
+ shift
+fi
+
+if [ -z "$1" ]
+then
+ >&2 printf 'Usage: single_tester.sh <source>\n'
+ return 1
+fi
+
+ThisDir="$(dirname "$(readlink -f "$0")")"
+
+for File in $@
+do
+ SourceFile="$(readlink -f "$File")"
+ [ "$SourceFile" ] || exit 1
+ SourceFile="${SourceFile%.asm}.asm"
+ [ -r "$SourceFile" ] || exit 1
+ >&2 printf 'File: %s\n' "$File"
+
+ (
+ cd "$ThisDir"
+
+ Stripped="${SourceFile%.asm}"
+ OutName="../build/$(basename "$Stripped")"
+
+ grep -v '^$\|^;\|^bits' "$SourceFile" |
+ while read -r line
+ do
+ first="${OutName}_first"
+ second="${OutName}_second"
+ error="${OutName}_error"
+
+ printf 'bits 16\n%s\n' "$line" > "$first".asm
+
+ nasm -o "$first" "$first".asm 2> "$error"
+ ../build/sim8086 "$first" > "$second".asm 2> "$error"
+ nasm -o "$second" "$second".asm 2>> "$error"
+
+ if diff -q "$first" "$second" > /dev/null 2>> "$error"
+ then
+ if [ "$NoColor" ]
+ then
+ printf ' PASSED: '\''%s'\''\n' "$line"
+ else
+ printf '\033[32m PASSED: '\''%s'\''\033[0m\n' "$line"
+ fi
+ else
+ if [ "$NoColor" ]
+ then
+ printf ' FAILED: '\''%s'\''\n' "$SourceFile"
+ else
+ printf '\033[31m FAILED: '\''%s'\''\033[0m\n' "$SourceFile"
+ fi
+ cat "$error" | sed 's/.*/ &/'
+ printf ' listing> %s\n' "$line"
+ printf ' sim8086> %s\n' "$(grep -v '^$\|^;\|bits' "$second".asm)"
+
+ if [ "$PauseOnFail" ]
+ then
+ exit
+ fi
+
+ fi
+ rm -f "$error" "$second" "$second".asm "$first" "$first".asm
+ done
+ )
+done