summaryrefslogtreecommitdiff
path: root/tests/assert-identical.sh
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2023-12-29 12:47:15 -0300
committerEuAndreh <eu@euandre.org>2025-03-20 15:58:40 -0300
commit51437318493e6f623631a73bd7f9389708cea537 (patch)
tree903ad1612db315d69d578db50c879f767bcc0c4f /tests/assert-identical.sh
parentAdd complete "Makefile" for standard packaging (diff)
downloadagahu-main.tar.gz
agahu-main.tar.xz
Rewrite code, but keeping the exact same semantic and behaviourHEADmain
- remove `#ifndef TWEETNACL_H` guard inside `tweetnacl.h`: as headers shouldn't include other headers; - remove `#define sv static void` golfing alias; - remove `#define FOR(i,n) for (i = 0;i < n;++i)` golfing alias; - assert that the generated `tweetnacl.o` code is identical to the original code, available at `tests/assert-identical.sh`; - remove all extra definitions from tweetnacl.h; - rewrite code with the correct indentation, spacing and formatting; - use C99 constructs over C89 (for loop variable declarations inside the parentheses); - use smaller types on loop variables, mostly `u8` over `int`, `i64`, etc.; - fix the public API; - add fuzz targets;
Diffstat (limited to '')
-rwxr-xr-xtests/assert-identical.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/assert-identical.sh b/tests/assert-identical.sh
new file mode 100755
index 0000000..1a25f62
--- /dev/null
+++ b/tests/assert-identical.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+set -eu
+
+NAME='tweetnacl'
+CFLAGS='-O3 -s'
+
+trap "rm -f tests/resources/impl.c src/impl.cmp.o tests/resources/impl.cmp.o" \
+ EXIT
+
+(
+cd src/
+gcc $CFLAGS -o impl.cmp.o -c impl.c
+strip impl.cmp.o
+) &
+
+(
+cd tests/resources/
+cp "$NAME".c impl.c
+gcc $CFLAGS -o impl.cmp.o -c impl.c
+strip impl.cmp.o
+) &
+
+wait
+
+cmp tests/resources/impl.cmp.o src/impl.cmp.o