xref: /aosp_15_r20/external/toolchain-utils/afdo_tools/bisection/e2e_external.sh (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1*760c253cSXin Li#!/bin/bash -eu
2*760c253cSXin Li
3*760c253cSXin LiGOOD_STATUS=0
4*760c253cSXin LiBAD_STATUS=1
5*760c253cSXin LiSKIP_STATUS=125
6*760c253cSXin LiPROBLEM_STATUS=127
7*760c253cSXin Li
8*760c253cSXin Litmp_file=$(mktemp)
9*760c253cSXin Litrap "rm -f '${tmp_file}'" EXIT
10*760c253cSXin Ligrep -v '^ ' "$1" > "${tmp_file}"
11*760c253cSXin Li
12*760c253cSXin Liif grep -q bad "${tmp_file}"; then
13*760c253cSXin Li  exit $BAD_STATUS
14*760c253cSXin Lifi
15*760c253cSXin Li
16*760c253cSXin Li# func_a containing '2' in its top line is BAD
17*760c253cSXin Liif grep -q 'func_a.*2' "${tmp_file}"; then
18*760c253cSXin Li  exit $BAD_STATUS
19*760c253cSXin Lifi
20*760c253cSXin Li
21*760c253cSXin Li# func_b, func_c, and func_d with even values are bad in conjunction
22*760c253cSXin Liif grep -q 'func_b.*4' "${tmp_file}" && \
23*760c253cSXin Li  grep -q 'func_c.*6' "${tmp_file}" && \
24*760c253cSXin Li  grep -q 'func_d.*8' "${tmp_file}"; then
25*760c253cSXin Li  exit $BAD_STATUS
26*760c253cSXin Lifi
27*760c253cSXin Li
28*760c253cSXin Li# If none of the BADness conditions are met
29*760c253cSXin Liexit $GOOD_STATUS
30