aboutsummaryrefslogtreecommitdiff
path: root/client/cpp/run.sh
diff options
context:
space:
mode:
Diffstat (limited to 'client/cpp/run.sh')
-rwxr-xr-xclient/cpp/run.sh99
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 "$@"
+}
+
+"$@"