xref: /aosp_15_r20/external/rappor/client/cpp/run.sh (revision 2abb31345f6c95944768b5222a9a5ed3fc68cc00)
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