|
54 | 54 |
|
55 | 55 | # Parse input arguments |
56 | 56 | parser = argparse.ArgumentParser() |
57 | | - parser.add_argument('--test-mode', default='conda', choices=['conda', 'package', 'develop'], |
| 57 | + parser.add_argument('--test-mode', default='conda', choices=['conda', 'package', 'develop', 'benchmark'], |
58 | 58 | help="""Test mode: |
59 | 59 | conda: use conda-build to run tests (default and valid for conda package-type) |
60 | 60 | package: create test environment, install package there and run tests |
61 | | - develop: run tests for sdc package already installed in develop mode""") |
| 61 | + develop: run tests for sdc package already installed in develop mode |
| 62 | + benchmark: run benchmark tests for sdc""") |
62 | 63 | parser.add_argument('--package-type', default='conda', choices=['conda', 'wheel'], |
63 | 64 | help='Package to test: conda or wheel, default = conda') |
64 | 65 | parser.add_argument('--python', default='3.7', choices=['3.6', '3.7', '3.8'], |
|
75 | 76 | parser.add_argument('--use-numba-master', action='store_true', |
76 | 77 | help=f'Test with Numba master from {numba_master_channel}') |
77 | 78 | parser.add_argument('--channel-list', default=None, help='List of channels to use: "-c <channel> -c <channel>"') |
| 79 | + parser.add_argument('--benchmark-argv', default='sdc.tests.tests_perf', |
| 80 | + help='Run performance testing for all or a sigle one"') |
78 | 81 |
|
79 | 82 | args = parser.parse_args() |
80 | 83 |
|
|
87 | 90 | run_coverage = args.run_coverage |
88 | 91 | channel_list = args.channel_list |
89 | 92 | use_numba_master = args.use_numba_master |
| 93 | + benchmark_argv = args.benchmark_argv |
90 | 94 | numba_channel = numba_master_channel if use_numba_master is True else args.numba_channel |
91 | 95 | assert conda_prefix is not None, 'CONDA_PREFIX is not defined; Please use --conda-prefix option or activate your conda' |
92 | 96 |
|
|
188 | 192 | run_command(f'{test_env_activate} && {test_script}') |
189 | 193 |
|
190 | 194 | format_print(f'Tests for {package_type} packages are PASSED') |
| 195 | + |
| 196 | + # Benchmark tests |
| 197 | + if test_mode == 'benchmark': |
| 198 | + os.chdir(os.path.dirname(sdc_src)) |
| 199 | + sdc_packages = get_sdc_build_packages(build_folder) |
| 200 | + for package in sdc_packages: |
| 201 | + if '.tar.bz2' in package and package_type == 'conda': |
| 202 | + format_print(f'Run benchmark tests for sdc conda package: {package}') |
| 203 | + create_conda_env(conda_activate, test_env, python, sdc_env['test'] + ['openpyxl'], conda_channels) |
| 204 | + run_command(f'{test_env_activate} && conda install -y {package}') |
| 205 | + run_command(f'{test_env_activate} && python -W ignore -m sdc.runtests {benchmark_argv}') |
0 commit comments