diff options
| author | Yusuke Endoh <mame@ruby-lang.org> | 2020-02-16 19:55:19 +0900 |
|---|---|---|
| committer | Yusuke Endoh <mame@ruby-lang.org> | 2020-02-16 19:55:19 +0900 |
| commit | 01138f5853a16068fb5a45ea39d3fc35fe664cb7 (patch) | |
| tree | 832f7eaa20155f4507a4dc8ccbc182a4ed5a024b /spec/ruby | |
| parent | 0b55f8a14f28b070177ee0ddcd76edb46af9a395 (diff) | |
Make OpenSSL::OSSL#test_memcmp_timing robust
The test was too fragile. Actually, it fails on one of our CIs
immediately after it was merged to ruby/ruby.
https://gist.github.com/ko1/7ea4a5826641f79e2f9e041d83e45dba#file-brlog-trunk_clang_40-20200216-101730-L532-L535
https://gist.github.com/ko1/1c657746092b871359d8bf9e0ad28921#file-brlog-trunk-test4-20200216-104518-L473-L476
* Two measurements, a-b and a-c, must be interative instead of
sequential; the execution time will be easily affected by disturbance
(say, cron job or some external process invoked during measurement)
* The comparison of the two results must be relative instead of
absolute; slow machine may take several tens of seconds for each
execution, and one delta second is too small. The test cases of a, b,
and c are very extreme, so if the target method has a bug, the two
execution times would be very different. So I think it is enough to
check if the difference is less than 10 times.
This change is the same as https://github.com/ruby/openssl/pull/332
Diffstat (limited to 'spec/ruby')
0 files changed, 0 insertions, 0 deletions
