Skip to content

Commit c87a6f8

Browse files
authored
Merge pull request #2 from sigilante/test/hardening-sprint
test: hardening sprint — 31 new tests (376→407)
2 parents e51a6cf + 65fe059 commit c87a6f8

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

tests/run_tests.sh

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -892,6 +892,47 @@ T "9b: Forth add jet add(3,4)=7" "0000000000000007" \
892892
T "9b: Forth add jet add(10,20)=30" "000000000000001E" \
893893
"0 N>N 6579297 N>N 10 N>N 20 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
894894

895+
# ── Phase 9b — remaining gate jets via SKNOCK ────────────────────────────────
896+
T "9b: Forth sub jet sub(10,3)=7" "0000000000000007" \
897+
"0 N>N 6452595 N>N 10 N>N 3 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
898+
T "9b: Forth sub jet sub(5,5)=0" "0000000000000000" \
899+
"0 N>N 6452595 N>N 5 N>N 5 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
900+
901+
T "9b: Forth mul jet mul(6,7)=42" "000000000000002A" \
902+
"0 N>N 7107949 N>N 6 N>N 7 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
903+
T "9b: Forth mul jet mul(0,99)=0" "0000000000000000" \
904+
"0 N>N 7107949 N>N 0 N>N 99 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
905+
906+
T "9b: Forth div jet div(10,3)=3" "0000000000000003" \
907+
"0 N>N 7760228 N>N 10 N>N 3 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
908+
T "9b: Forth div jet div(7,7)=1" "0000000000000001" \
909+
"0 N>N 7760228 N>N 7 N>N 7 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
910+
911+
T "9b: Forth mod jet mod(10,3)=1" "0000000000000001" \
912+
"0 N>N 6582125 N>N 10 N>N 3 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
913+
T "9b: Forth mod jet mod(12,4)=0" "0000000000000000" \
914+
"0 N>N 6582125 N>N 12 N>N 4 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
915+
916+
T "9b: Forth lth jet lth(3,4)=yes" "0000000000000000" \
917+
"0 N>N 6845548 N>N 3 N>N 4 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
918+
T "9b: Forth lth jet lth(4,3)=no" "0000000000000001" \
919+
"0 N>N 6845548 N>N 4 N>N 3 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
920+
921+
T "9b: Forth gth jet gth(5,3)=yes" "0000000000000000" \
922+
"0 N>N 6845543 N>N 5 N>N 3 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
923+
T "9b: Forth gth jet gth(3,5)=no" "0000000000000001" \
924+
"0 N>N 6845543 N>N 3 N>N 5 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
925+
926+
T "9b: Forth lte jet lte(3,3)=yes" "0000000000000000" \
927+
"0 N>N 6648940 N>N 3 N>N 3 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
928+
T "9b: Forth lte jet lte(4,3)=no" "0000000000000001" \
929+
"0 N>N 6648940 N>N 4 N>N 3 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
930+
931+
T "9b: Forth gte jet gte(5,5)=yes" "0000000000000000" \
932+
"0 N>N 6648935 N>N 5 N>N 5 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
933+
T "9b: Forth gte jet gte(2,5)=no" "0000000000000001" \
934+
"0 N>N 6648935 N>N 2 N>N 5 N>N JCORE2 JD JWRAP SKNOCK NOUN> ."
935+
895936
# ── Phase 9f — %tame hint: compile Forth jet from Nock at eval time ──────────
896937
# %tame fires at eval time → calls forth_eval_string(source-cord) → Forth word
897938
# appears in dictionary. The enclosing %wild scopes the jet registration.
@@ -1012,6 +1053,48 @@ T "crash: unimplemented op12" "000000000000002A" "42 ."
10121053
BEFORE "0 N>N 1701667188 N>N 42 N>N CONS 11 N>N SWAP CONS 1 N>N 99 N>N CONS CONS NOCK DROP"
10131054
T "crash: %tame atom clue" "000000000000002A" "42 ."
10141055

1056+
# -- %wild malformed clue crashes --
1057+
BEFORE "0 N>N 42 N>N 0 N>N CONS 1 N>N SWAP CONS 1684826487 N>N SWAP CONS 1 N>N 99 N>N CONS CONS 11 N>N SWAP CONS NOCK DROP"
1058+
T "crash: %wild entry not cell" "000000000000002A" "42 ."
1059+
BEFORE "0 N>N 6514020 N>N 42 N>N CONS 0 N>N CONS 1 N>N SWAP CONS 1684826487 N>N SWAP CONS 1 N>N 99 N>N CONS CONS 11 N>N SWAP CONS NOCK DROP"
1060+
T "crash: %wild sock not cell" "000000000000002A" "42 ."
1061+
1062+
# -- jet arg crashes --
1063+
BEFORE "0 N>N 6514020 N>N 1 N>N 2 N>N CONS JCORE1 JD JWRAP NOCK DROP"
1064+
T "crash: jet dec cell sample" "000000000000002A" "42 ."
1065+
BEFORE "0 N>N 6579297 N>N 1 N>N 2 N>N CONS 3 N>N JCORE2 JD JWRAP NOCK DROP"
1066+
T "crash: jet add cell arg" "000000000000002A" "42 ."
1067+
BEFORE "0 N>N 6452595 N>N 1 N>N 2 N>N CONS 3 N>N JCORE2 JD JWRAP NOCK DROP"
1068+
T "crash: jet sub cell arg" "000000000000002A" "42 ."
1069+
BEFORE "0 N>N 7107949 N>N 1 N>N 2 N>N CONS 3 N>N JCORE2 JD JWRAP NOCK DROP"
1070+
T "crash: jet mul cell arg" "000000000000002A" "42 ."
1071+
BEFORE "0 N>N 7760228 N>N 1 N>N 2 N>N CONS 3 N>N JCORE2 JD JWRAP NOCK DROP"
1072+
T "crash: jet div cell arg" "000000000000002A" "42 ."
1073+
BEFORE "0 N>N 6582125 N>N 1 N>N 2 N>N CONS 3 N>N JCORE2 JD JWRAP NOCK DROP"
1074+
T "crash: jet mod cell arg" "000000000000002A" "42 ."
1075+
1076+
# -- hax (tree edit) crashes --
1077+
BEFORE "0 N>N 0 N>N 1 N>N 99 N>N CONS CONS 1 N>N 42 N>N CONS CONS 10 N>N SWAP CONS NOCK DROP"
1078+
T "crash: edit axis 0" "000000000000002A" "42 ."
1079+
BEFORE "0 N>N 2 N>N 1 N>N 99 N>N CONS CONS 1 N>N 42 N>N CONS CONS 10 N>N SWAP CONS NOCK DROP"
1080+
T "crash: edit in atom" "000000000000002A" "42 ."
1081+
1082+
# -- slot indirect axis --
1083+
BEFORE "42 N>N 0 N>N I63 CONS NOCK DROP"
1084+
T "crash: slot axis not direct" "000000000000002A" "42 ."
1085+
1086+
# -- %tame name mismatch --
1087+
BEFORE "0 N>N 7303014 N>N 16642418994651194 N>N CONS 1 N>N SWAP CONS 1701667188 N>N SWAP CONS 1 N>N 0 N>N CONS CONS 11 N>N SWAP CONS NOCK DROP"
1088+
T "crash: %tame name mismatch" "000000000000002A" "42 ."
1089+
1090+
# -- op10/op11 structural crashes --
1091+
BEFORE "0 N>N I63 1 N>N 99 N>N CONS CONS 1 N>N 42 N>N CONS CONS 10 N>N SWAP CONS NOCK DROP"
1092+
T "crash: op10 axis not direct" "000000000000002A" "42 ."
1093+
BEFORE "0 N>N 42 N>N 1 N>N 42 N>N CONS CONS 10 N>N SWAP CONS NOCK DROP"
1094+
T "crash: op10 atom hint" "000000000000002A" "42 ."
1095+
BEFORE "0 N>N I63 1 N>N 99 N>N CONS CONS 1 N>N 42 N>N CONS CONS 11 N>N SWAP CONS NOCK DROP"
1096+
T "crash: op11 tag not direct" "000000000000002A" "42 ."
1097+
10151098
# ── Forth Primitives Smoke Tests ──────────────────────────────────────────
10161099
# Basic sanity checks for core Forth words.
10171100

0 commit comments

Comments
 (0)