aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-10-12 10:21:52 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-10-12 10:22:50 +0200
commit9b680fadec01789c1fb1317b939c15d186a572c9 (patch)
treed9038076657ec3cf887e5fd2bd14f0155ac25b7e
parentc4f64cf2556c0f8597e1fbc19d7c664b8da94612 (diff)
downloadnissy-core-9b680fadec01789c1fb1317b939c15d186a572c9.tar.gz
nissy-core-9b680fadec01789c1fb1317b939c15d186a572c9.zip
Added shelltest
Will add more tests when I feel like it
-rw-r--r--.gitignore2
-rw-r--r--Makefile9
-rw-r--r--README.md10
-rw-r--r--shell/shell.c (renamed from shell.c)2
-rwxr-xr-xshell/test.sh22
-rw-r--r--shell/testcases/000_frommoves.in1
-rw-r--r--shell/testcases/000_frommoves.out1
-rw-r--r--shell/testcases/001_compose.in1
-rw-r--r--shell/testcases/001_compose.out1
-rwxr-xr-xtest/test.sh2
10 files changed, 44 insertions, 7 deletions
diff --git a/.gitignore b/.gitignore
index b3c41a6..0a26988 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,8 @@ utils/.DS_Store
8perf.data 8perf.data
9perf.data.old 9perf.data.old
10run 10run
11shell/lasttest.out
12shell/lasttest.err
11tables/* 13tables/*
12test/*/runtest 14test/*/runtest
13test/.DS_Store 15test/.DS_Store
diff --git a/Makefile b/Makefile
index fbf43b1..8e7948e 100644
--- a/Makefile
+++ b/Makefile
@@ -30,10 +30,13 @@ debugtool: debugnissy.o
30 30
31shell: nissy.o 31shell: nissy.o
32 mkdir -p tables 32 mkdir -p tables
33 ${CC} ${MACROS} ${CFLAGS} -o run nissy.o shell.c 33 ${CC} ${MACROS} ${CFLAGS} -o run nissy.o shell/shell.c
34 34
35debugshell: debugnissy.o 35debugshell: debugnissy.o
36 mkdir -p tables 36 mkdir -p tables
37 ${CC} ${MACROS} ${DBGFLAGS} -o run debugnissy.o shell.c 37 ${CC} ${MACROS} ${DBGFLAGS} -o run debugnissy.o shell/shell.c
38 38
39.PHONY: all clean test tool debugtool shell debugshell 39shelltest: debugshell
40 ./shell/test.sh
41
42.PHONY: all clean test tool debugtool shell debugshell shelltest
diff --git a/README.md b/README.md
index 6ae0f05..554599d 100644
--- a/README.md
+++ b/README.md
@@ -108,8 +108,14 @@ commands manually. To build the shell use:
108$ make shell 108$ make shell
109``` 109```
110 110
111This will create an executable called `run`. Then you can for example 111This will create an executable called `run`.
112get a cube from a sequence of moves: 112Optionally, you can run some tests:
113
114```
115$ make shelltest
116```
117
118Then you can for example get a cube from a sequence of moves:
113 119
114``` 120```
115$ ./run frommoves -moves "R' U' F" 121$ ./run frommoves -moves "R' U' F"
diff --git a/shell.c b/shell/shell.c
index 306ad78..de03656 100644
--- a/shell.c
+++ b/shell/shell.c
@@ -7,7 +7,7 @@
7#include <string.h> 7#include <string.h>
8#include <time.h> 8#include <time.h>
9 9
10#include "src/nissy.h" 10#include "../src/nissy.h"
11 11
12#define PRINTCUBE_BUFFER_SIZE UINT64_C(1024) 12#define PRINTCUBE_BUFFER_SIZE UINT64_C(1024)
13#define SOLUTIONS_BUFFER_SIZE UINT64_C(500000) 13#define SOLUTIONS_BUFFER_SIZE UINT64_C(500000)
diff --git a/shell/test.sh b/shell/test.sh
new file mode 100755
index 0000000..de888ef
--- /dev/null
+++ b/shell/test.sh
@@ -0,0 +1,22 @@
1#!/bin/sh
2
3SHELLBIN="./run"
4TESTDIR="./shell/testcases"
5TESTOUT="shell/lasttest.out"
6TESTERR="shell/lasttest.err"
7
8for cin in "$TESTDIR"/*.in; do
9 c=$(echo "$cin" | sed 's/\.in//')
10 cout="$c.out"
11 printf "%s: " "$c"
12 (cat "$cin" | xargs "$SHELLBIN") > $TESTOUT 2> $TESTERR
13 if diff "$cout" "$TESTOUT"; then
14 printf "OK\n"
15 else
16 printf "Test failed! stderr:\n"
17 cat $TESTERR
18 exit 1
19 fi
20done
21
22echo "All tests passed!"
diff --git a/shell/testcases/000_frommoves.in b/shell/testcases/000_frommoves.in
new file mode 100644
index 0000000..2b3c6d1
--- /dev/null
+++ b/shell/testcases/000_frommoves.in
@@ -0,0 +1 @@
frommoves -moves "UFRR"
diff --git a/shell/testcases/000_frommoves.out b/shell/testcases/000_frommoves.out
new file mode 100644
index 0000000..dfefe81
--- /dev/null
+++ b/shell/testcases/000_frommoves.out
@@ -0,0 +1 @@
DEOISVBH=ZFCYHAGBLTKU
diff --git a/shell/testcases/001_compose.in b/shell/testcases/001_compose.in
new file mode 100644
index 0000000..fa09a0b
--- /dev/null
+++ b/shell/testcases/001_compose.in
@@ -0,0 +1 @@
compose -cube NEORSQLH=ZFCYUAGLHTKB -perm NEORSQLH=ZFCYUAGLHTKB
diff --git a/shell/testcases/001_compose.out b/shell/testcases/001_compose.out
new file mode 100644
index 0000000..d36a93c
--- /dev/null
+++ b/shell/testcases/001_compose.out
@@ -0,0 +1 @@
ASTUGFBH=DACXEZGBLIKF
diff --git a/test/test.sh b/test/test.sh
index a675286..8b5db35 100755
--- a/test/test.sh
+++ b/test/test.sh
@@ -10,7 +10,7 @@ for t in test/*; do
10 if [ -n "$re" ] && !(echo "$t" | grep -q "$re"); then 10 if [ -n "$re" ] && !(echo "$t" | grep -q "$re"); then
11 continue 11 continue
12 fi 12 fi
13 13
14 # Verify if $t is a directory and if its name starts with three digits 14 # Verify if $t is a directory and if its name starts with three digits
15 if [ -d "$t" ] && basename "$t" | grep -Eq '^[0-9]{3}'; then 15 if [ -d "$t" ] && basename "$t" | grep -Eq '^[0-9]{3}'; then
16 $CC -o $TESTBIN "$t"/*.c $OBJ || exit 1 16 $CC -o $TESTBIN "$t"/*.c $OBJ || exit 1

Generated with cgit - Back to sebastiano.tronto.net