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