diff options
Diffstat (limited to 'client/cpp/run.sh')
-rwxr-xr-x | client/cpp/run.sh | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/client/cpp/run.sh b/client/cpp/run.sh new file mode 100755 index 0000000..cb7bf82 --- /dev/null +++ b/client/cpp/run.sh @@ -0,0 +1,99 @@ +#!/bin/bash +# +# Usage: +# ./run.sh <function name> + +set -o nounset +set -o pipefail +set -o errexit + +setup() { + # need libprotobuf-dev for headers to compile against. + sudo apt-get install protobuf-compiler libprotobuf-dev + + # OpenSSL dev headers + sudo apt-get install libssl-dev +} + +init() { + mkdir --verbose -p _tmp +} + +rappor-sim() { + make _tmp/rappor_sim + _tmp/rappor_sim "$@" +} + +protobuf-encoder-demo() { + make _tmp/protobuf_encoder_demo + _tmp/protobuf_encoder_demo "$@" +} + +rappor-sim-demo() { + rappor-sim 16 2 128 0.25 0.75 0.5 <<EOF +client,cohort,value +c1,1,v1 +c1,1,v2 +c2,2,v3 +c2,2,v4 +EOF +} + +empty-input() { + echo -n '' | rappor-sim 58 2 128 .025 0.75 0.5 +} + +# This outputs an HMAC and MD5 value. Compare with Python/shell below. + +openssl-hash-impl-test() { + make _tmp/openssl_hash_impl_test + _tmp/openssl_hash_impl_test "$@" +} + +test-hmac-sha256() { + #echo -n foo | sha256sum + python -c ' +import hashlib +import hmac +import sys + +secret = sys.argv[1] +body = sys.argv[2] +m = hmac.new(secret, body, digestmod=hashlib.sha256) +print m.hexdigest() +' "key" "value" +} + +test-md5() { + echo -n value | md5sum +} + +# -M: all headers +# -MM: exclude system headers + +# -MF: file to write the dependencies to + +# -MD: like -M -MF +# -MMD: -MD, but only system headers + +# -MP: workaround + + +deps() { + # -MM seems like the one we want. + gcc -I _tmp -MM protobuf_encoder_test.cc unix_kernel_rand_impl.cc + #gcc -I _tmp -MMD -MP protobuf_encoder_test.cc unix_kernel_rand_impl.cc +} + +count() { + wc -l *.h *.cc | sort -n +} + +encoder-demo() { + make _tmp/encoder_demo && _tmp/encoder_demo +} +cpplint() { + ../../analysis/cpp/_tmp/cpplint.py "$@" +} + +"$@" |