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