Conversation
|
This relates to RPOPC-879 |
Review Summary by QodoAdd semantic error codes and improve test_tools installation resilience
WalkthroughsDescription• Replace hardcoded exit codes with semantic error code constants • Add fallback mechanisms for test_tools installation (wget, curl, git) • Improve error handling with specific error codes from test_tools • Remove redundant error handling logic in pyperf dump operation Diagramflowchart LR
A["Exit Code Constants"] -->|"Replace hardcoded 1"| B["Semantic Error Codes"]
C["Single Installation Method"] -->|"Add fallback attempts"| D["wget/curl/git attempts"]
E["Error Handling"] -->|"Simplify logic"| F["Remove redundant checks"]
B --> G["Better error determination"]
D --> G
F --> G
File Changes1. pyperf/pyperf_run
|
Code Review by Qodo
1. attempt_tools_git uses 101
|
|
E_USAGE is defined in error_codes, which is part of test_tools |
|
Remove test_results_report from save_results, file is no longer present. |
|
Unverified unzip/mv install |
|
test_tools/general_setup has been changed to $TOOLS_BIN |
Description
Uses error_codes found in test_tools/error_codes to provide more specific error indication.
Before/After Comparison
Before: Returned a 0 or 1, making determination of having to rerun very course
After: Error codes are now bases on test_tools/error_codes, making it easier to limit when we do a rerun of the test.
Also, changed how we load in test_tools, we try curl, git, and wget, to avoid a failure due to the program not
being installed.
Clerical Stuff
This closes #67
Relates to JIRA: RPOPC-879
Testing done
Ran following scenario
global:
ssh_key_file: replace_your_ssh_key
terminate_cloud: 1
os_vendor: rhel
results_prefix: pyperf_results
os_vendor: rhel
system_type: aws
cloud_os_id: ami-035032ea878eca201
systems:
system1:
tests: "pyperf"
host_config: "m5.xlarge"
Generated the following csv file
Test,Avg,Unit,Start_Date,End_Date
2to3,440.55,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
async_generators,543.88,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
async_tree_none,901.17,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
async_tree_cpu_io_mixed,1.23,sec,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
async_tree_io,2.34,sec,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
async_tree_memoization,1.23,sec,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
asyncio_tcp,338.56,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
asyncio_tcp_ssl,2.91,sec,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
asyncio_websockets,716.32,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
chameleon,13.39,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
chaos,155.55,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
comprehensions,36.63,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
bench_mp_pool,16.13,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
bench_thread_pool,1.58,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
coroutines,56.83,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
coverage,78.47,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
crypto_pyaes,157.17,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
dask,732.55,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
deepcopy,613.48,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
deepcopy_reduce,5.28,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
deepcopy_memo,75.53,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
deltablue,9.95,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
docutils,3.93,sec,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
dulwich_log,99.45,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
fannkuch,683.33,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
float,167.18,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
create_gc_cycles,1.78,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
gc_traversal,3.86,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
generators,86.43,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
genshi_text,42.91,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
genshi_xml,85.81,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
go,354.10,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
hexiom,13.82,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
html5lib,114.23,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
json_dumps,18.00,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
json_loads,36.62,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
logging_format,12.49,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
logging_silent,272.30,ns,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
logging_simple,11.40,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
mako,23.41,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
mdp,3.75,sec,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
meteor_contest,146.68,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
nbody,197.10,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
nqueens,136.17,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
pathlib,24.25,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
pickle,13.01,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
pickle_dict,36.76,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
pickle_list,5.88,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
pickle_pure_python,613.73,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
pidigits,230.02,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
pprint_pformat,2.04,sec,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
pyflate,944.85,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
python_startup,12.29,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
python_startup_no_site,7.71,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
raytrace,693.78,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
regex_compile,241.43,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
regex_dna,287.92,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
regex_effbot,4.34,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
regex_v8,32.71,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
richards,98.45,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
richards_super,118.42,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
scimark_fft,550.57,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
scimark_lu,225.72,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
scimark_monte_carlo,155.62,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
scimark_sor,282.68,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
scimark_sparse_mat_mult,7.28,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
spectral_norm,213.53,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sqlalchemy_declarative,217.13,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sqlalchemy_imperative,28.10,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sqlglot_normalize,178.22,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sqlglot_optimize,86.39,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sqlglot_parse,3.07,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sqlglot_transpile,3.55,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sqlite_synth,3.51,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sympy_expand,698.25,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sympy_integrate,32.31,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sympy_sum,242.22,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
sympy_str,425.12,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
telco,8.58,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
tomli_loads,3.93,sec,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
tornado_http,186.17,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
typing_runtime_protocols,686.43,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
unpack_sequence,95.92,ns,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
unpickle,17.30,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
unpickle_list,6.01,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
unpickle_pure_python,444.43,us,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
xml_etree_parse,210.67,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
xml_etree_iterparse,141.45,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
xml_etree_generate,128.22,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z
xml_etree_process,102.67,ms,2026-03-16T12:04:52Z,2026-03-16T13:11:26Z