add a simple unit-test framework
This commit is contained in:
parent
447c212f09
commit
64a1ee9810
|
|
@ -2,3 +2,4 @@ jumpforth
|
||||||
.*.swp
|
.*.swp
|
||||||
.*.swo
|
.*.swo
|
||||||
*~
|
*~
|
||||||
|
test/*.act
|
||||||
|
|
|
||||||
27
Makefile
27
Makefile
|
|
@ -1,2 +1,27 @@
|
||||||
jumpforth: jumpforth.S startup.4th
|
SHELL = /bin/bash
|
||||||
|
TARGET = jumpforth
|
||||||
|
SOURCES = $(TARGET).S
|
||||||
|
|
||||||
|
all: $(TARGET)
|
||||||
|
|
||||||
|
$(TARGET): $(SOURCES) startup.4th
|
||||||
gcc -m32 -nostdlib -static -o $@ $<
|
gcc -m32 -nostdlib -static -o $@ $<
|
||||||
|
|
||||||
|
clean: test-clean
|
||||||
|
$(RM) $(TARGET)
|
||||||
|
|
||||||
|
TEST_RESULTS := $(patsubst %.4th,%.act,$(wildcard test/*.4th))
|
||||||
|
|
||||||
|
.PHONY: test $(TEST_RESULTS)
|
||||||
|
test: $(TEST_RESULTS)
|
||||||
|
|
||||||
|
test-clean:
|
||||||
|
$(RM) $(TEST_RESULTS)
|
||||||
|
|
||||||
|
.PHONY: $(TEST_RESULTS)
|
||||||
|
$(TEST_RESULTS): %.act: %.4th $(TARGET)
|
||||||
|
@printf '%s … ' $(notdir $<) && \
|
||||||
|
{ ./$(TARGET) < $< >& $@; echo exit-code: $$? >> $@; } && \
|
||||||
|
if [[ ! -e $(@:%.act=%.exp) ]]; then echo '(new)'; cp $@ $(@:%.act=%.exp); \
|
||||||
|
elif diff -q $(@:%.act=%.exp) $@ >/dev/null; then echo '✓'; \
|
||||||
|
else echo '✗'; diff -u $(@:%.act=%.exp) $@; :; fi
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
: X DUP >R >NAME TUCK TYPE 6 SWAP - SPACES
|
||||||
|
-1 R@ EXECUTE NEGATE . SPACE
|
||||||
|
0 R@ EXECUTE NEGATE . SPACE
|
||||||
|
1 R> EXECUTE NEGATE . EOL ;
|
||||||
|
|
||||||
|
: Y DUP >R >NAME TUCK TYPE 6 SWAP - SPACES
|
||||||
|
-3 -2 R@ EXECUTE NEGATE . SPACE
|
||||||
|
-3 -3 R@ EXECUTE NEGATE . SPACE
|
||||||
|
-3 -4 R> EXECUTE NEGATE . EOL ;
|
||||||
|
|
||||||
|
0 ARRAY UNARY-OPS ] 0< 0<= 0= 0<> 0>= 0> [
|
||||||
|
HERE 0 UNARY-OPS - CELL / CONSTANT N-UNARY-OPS
|
||||||
|
|
||||||
|
0 ARRAY BINARY-OPS ] < <= = <> >= > [
|
||||||
|
HERE 0 BINARY-OPS - CELL / CONSTANT N-BINARY-OPS
|
||||||
|
|
||||||
|
: TEST
|
||||||
|
N-UNARY-OPS 0 DO I UNARY-OPS @ X LOOP
|
||||||
|
N-BINARY-OPS 0 DO I BINARY-OPS @ Y LOOP ;
|
||||||
|
|
||||||
|
TEST
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
0< 1 0 0
|
||||||
|
0<= 1 1 0
|
||||||
|
0= 0 1 0
|
||||||
|
0<> 1 0 1
|
||||||
|
0>= 0 1 1
|
||||||
|
0> 0 0 1
|
||||||
|
< 1 0 0
|
||||||
|
<= 1 1 0
|
||||||
|
= 0 1 0
|
||||||
|
<> 1 0 1
|
||||||
|
>= 0 1 1
|
||||||
|
> 0 0 1
|
||||||
|
exit-code: 0
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
: X DUP >R >NAME TUCK TYPE 6 SWAP - SPACES
|
||||||
|
-1 S>D R@ EXECUTE NEGATE . SPACE
|
||||||
|
0 S>D R@ EXECUTE NEGATE . SPACE
|
||||||
|
1 S>D R> EXECUTE NEGATE . EOL ;
|
||||||
|
|
||||||
|
: Y DUP >R >NAME TUCK TYPE 6 SWAP - SPACES
|
||||||
|
-3 S>D -2 S>D R@ EXECUTE NEGATE . SPACE
|
||||||
|
-3 S>D -3 S>D R@ EXECUTE NEGATE . SPACE
|
||||||
|
-3 S>D -4 S>D R> EXECUTE NEGATE . EOL ;
|
||||||
|
|
||||||
|
0 ARRAY UNARY-OPS ] D0< D0<= D0= D0<> D0>= D0> [
|
||||||
|
HERE 0 UNARY-OPS - CELL / CONSTANT N-UNARY-OPS
|
||||||
|
|
||||||
|
0 ARRAY BINARY-OPS ] D< D<= D= D<> D>= D> [
|
||||||
|
HERE 0 BINARY-OPS - CELL / CONSTANT N-BINARY-OPS
|
||||||
|
|
||||||
|
: TEST
|
||||||
|
N-UNARY-OPS 0 DO I UNARY-OPS @ X LOOP
|
||||||
|
N-BINARY-OPS 0 DO I BINARY-OPS @ Y LOOP ;
|
||||||
|
|
||||||
|
TEST
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
D0< 1 0 0
|
||||||
|
D0<= 1 1 0
|
||||||
|
D0= 0 1 0
|
||||||
|
D0<> 1 0 1
|
||||||
|
D0>= 0 1 1
|
||||||
|
D0> 0 0 1
|
||||||
|
D< 1 0 0
|
||||||
|
D<= 1 1 0
|
||||||
|
D= 0 1 0
|
||||||
|
D<> 1 0 1
|
||||||
|
D>= 0 1 1
|
||||||
|
D> 0 0 1
|
||||||
|
exit-code: 0
|
||||||
Loading…
Reference in New Issue