xref: /xnu-12377.81.4/tests/unit/tools/make_run_unittests.py (revision 043036a2b3718f7f0be807e2870f8f47d3fa0796)
1*043036a2SApple OSS Distributions#!/usr/bin/env python3
2*043036a2SApple OSS Distributionsimport sys
3*043036a2SApple OSS Distributionsimport os
4*043036a2SApple OSS Distributions
5*043036a2SApple OSS Distributionstemplate = '''#!/bin/zsh
6*043036a2SApple OSS Distributionstests=(
7*043036a2SApple OSS DistributionsTEST_TARGETS
8*043036a2SApple OSS Distributions)
9*043036a2SApple OSS Distributions
10*043036a2SApple OSS Distributionss_dir=${0:A:h}
11*043036a2SApple OSS Distributionsfor file in ${tests[@]}; do
12*043036a2SApple OSS Distributions  file_path=$s_dir/$file
13*043036a2SApple OSS Distributions  echo "Running $file_path ..."
14*043036a2SApple OSS Distributions  if [[ -f $file_path ]]; then
15*043036a2SApple OSS Distributions    $file_path > /dev/null 2>/dev/null
16*043036a2SApple OSS Distributions    ret=$?
17*043036a2SApple OSS Distributions    if [[ $ret -eq 0 ]]; then
18*043036a2SApple OSS Distributions      print -P "%F{green}*** PASS%f"
19*043036a2SApple OSS Distributions    else
20*043036a2SApple OSS Distributions      print -P "%F{red}*** FAILED: $file_path%f"
21*043036a2SApple OSS Distributions    fi
22*043036a2SApple OSS Distributions  else
23*043036a2SApple OSS Distributions    print -P "%F{yellow}*** Missing%f"
24*043036a2SApple OSS Distributions  fi
25*043036a2SApple OSS Distributionsdone
26*043036a2SApple OSS Distributions'''
27*043036a2SApple OSS Distributions
28*043036a2SApple OSS Distributionsdef main():
29*043036a2SApple OSS Distributions    targets_s = sys.argv[1]
30*043036a2SApple OSS Distributions    output = sys.argv[2]
31*043036a2SApple OSS Distributions    output_list = sys.argv[3]
32*043036a2SApple OSS Distributions
33*043036a2SApple OSS Distributions    targets = targets_s.strip().split(' ')
34*043036a2SApple OSS Distributions    target_lines = '\n'.join([('"' + t + '"') for t in targets])
35*043036a2SApple OSS Distributions    s = template.replace('TEST_TARGETS', target_lines)
36*043036a2SApple OSS Distributions    open(output, 'w').write(s)
37*043036a2SApple OSS Distributions    print(f"wrote {output}")
38*043036a2SApple OSS Distributions
39*043036a2SApple OSS Distributions    open(output_list, 'w').write('\n'.join(targets) + '\n')
40*043036a2SApple OSS Distributions    print(f"wrote {output_list}")
41*043036a2SApple OSS Distributions
42*043036a2SApple OSS Distributionsif __name__ == "__main__":
43*043036a2SApple OSS Distributions  sys.exit(main())