quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

constcheck.sh (683B)


      1 #! /bin/sh
      2 
      3 CT='ct.c'
      4 
      5 echo '#include <assert.h>' > "$CT"
      6 echo '#include <sodium.h>' >> "$CT"
      7 echo 'int main(void) {' >> "$CT"
      8 for macro in $(grep -Er '#define crypto_.*BYTES(_[A-Z]+)? ' src/libsodium/include | \
      9                cut -d: -f2- | cut -d' ' -f2 | \
     10                fgrep -v edwards25519sha512batch | sort -u); do
     11   func=$(echo "$macro" | tr A-Z a-z)
     12   echo "    assert($func() == $macro);" >> "$CT"
     13 done
     14 echo "return 0; }" >> "$CT"
     15 
     16 CPPFLAGS="${CPPFLAGS} -Wno-deprecated-declarations"
     17 CPPFLAGS="${CPPFLAGS} -I/opt/homebrew/include"
     18 LDFLAGS="${LDFLAGS} -L/opt/homebrew/lib"
     19 ${CC:-cc} "$CT" $CPPFLAGS $CFLAGS $LDFLAGS -lsodium || exit 1
     20 ./a.out || exit 1
     21 rm -f a.out "$CT"
     22