1*2abb3134SXin Li#!/bin/bash 2*2abb3134SXin Li# 3*2abb3134SXin Li# Usage: 4*2abb3134SXin Li# ./run.sh <function name> 5*2abb3134SXin Li 6*2abb3134SXin Liset -o nounset 7*2abb3134SXin Liset -o pipefail 8*2abb3134SXin Liset -o errexit 9*2abb3134SXin Li 10*2abb3134SXin Lisetup() { 11*2abb3134SXin Li # need libprotobuf-dev for headers to compile against. 12*2abb3134SXin Li sudo apt-get install protobuf-compiler libprotobuf-dev 13*2abb3134SXin Li 14*2abb3134SXin Li # OpenSSL dev headers 15*2abb3134SXin Li sudo apt-get install libssl-dev 16*2abb3134SXin Li} 17*2abb3134SXin Li 18*2abb3134SXin Liinit() { 19*2abb3134SXin Li mkdir --verbose -p _tmp 20*2abb3134SXin Li} 21*2abb3134SXin Li 22*2abb3134SXin Lirappor-sim() { 23*2abb3134SXin Li make _tmp/rappor_sim 24*2abb3134SXin Li _tmp/rappor_sim "$@" 25*2abb3134SXin Li} 26*2abb3134SXin Li 27*2abb3134SXin Liprotobuf-encoder-demo() { 28*2abb3134SXin Li make _tmp/protobuf_encoder_demo 29*2abb3134SXin Li _tmp/protobuf_encoder_demo "$@" 30*2abb3134SXin Li} 31*2abb3134SXin Li 32*2abb3134SXin Lirappor-sim-demo() { 33*2abb3134SXin Li rappor-sim 16 2 128 0.25 0.75 0.5 <<EOF 34*2abb3134SXin Liclient,cohort,value 35*2abb3134SXin Lic1,1,v1 36*2abb3134SXin Lic1,1,v2 37*2abb3134SXin Lic2,2,v3 38*2abb3134SXin Lic2,2,v4 39*2abb3134SXin LiEOF 40*2abb3134SXin Li} 41*2abb3134SXin Li 42*2abb3134SXin Liempty-input() { 43*2abb3134SXin Li echo -n '' | rappor-sim 58 2 128 .025 0.75 0.5 44*2abb3134SXin Li} 45*2abb3134SXin Li 46*2abb3134SXin Li# This outputs an HMAC and MD5 value. Compare with Python/shell below. 47*2abb3134SXin Li 48*2abb3134SXin Liopenssl-hash-impl-test() { 49*2abb3134SXin Li make _tmp/openssl_hash_impl_test 50*2abb3134SXin Li _tmp/openssl_hash_impl_test "$@" 51*2abb3134SXin Li} 52*2abb3134SXin Li 53*2abb3134SXin Litest-hmac-sha256() { 54*2abb3134SXin Li #echo -n foo | sha256sum 55*2abb3134SXin Li python -c ' 56*2abb3134SXin Liimport hashlib 57*2abb3134SXin Liimport hmac 58*2abb3134SXin Liimport sys 59*2abb3134SXin Li 60*2abb3134SXin Lisecret = sys.argv[1] 61*2abb3134SXin Libody = sys.argv[2] 62*2abb3134SXin Lim = hmac.new(secret, body, digestmod=hashlib.sha256) 63*2abb3134SXin Liprint m.hexdigest() 64*2abb3134SXin Li' "key" "value" 65*2abb3134SXin Li} 66*2abb3134SXin Li 67*2abb3134SXin Litest-md5() { 68*2abb3134SXin Li echo -n value | md5sum 69*2abb3134SXin Li} 70*2abb3134SXin Li 71*2abb3134SXin Li# -M: all headers 72*2abb3134SXin Li# -MM: exclude system headers 73*2abb3134SXin Li 74*2abb3134SXin Li# -MF: file to write the dependencies to 75*2abb3134SXin Li 76*2abb3134SXin Li# -MD: like -M -MF 77*2abb3134SXin Li# -MMD: -MD, but only system headers 78*2abb3134SXin Li 79*2abb3134SXin Li# -MP: workaround 80*2abb3134SXin Li 81*2abb3134SXin Li 82*2abb3134SXin Lideps() { 83*2abb3134SXin Li # -MM seems like the one we want. 84*2abb3134SXin Li gcc -I _tmp -MM protobuf_encoder_test.cc unix_kernel_rand_impl.cc 85*2abb3134SXin Li #gcc -I _tmp -MMD -MP protobuf_encoder_test.cc unix_kernel_rand_impl.cc 86*2abb3134SXin Li} 87*2abb3134SXin Li 88*2abb3134SXin Licount() { 89*2abb3134SXin Li wc -l *.h *.cc | sort -n 90*2abb3134SXin Li} 91*2abb3134SXin Li 92*2abb3134SXin Liencoder-demo() { 93*2abb3134SXin Li make _tmp/encoder_demo && _tmp/encoder_demo 94*2abb3134SXin Li} 95*2abb3134SXin Licpplint() { 96*2abb3134SXin Li ../../analysis/cpp/_tmp/cpplint.py "$@" 97*2abb3134SXin Li} 98*2abb3134SXin Li 99*2abb3134SXin Li"$@" 100