100 lines
1.6 KiB
Bash
Executable File
100 lines
1.6 KiB
Bash
Executable File
#!/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 "$@"
|
|
}
|
|
|
|
"$@"
|