-
Notifications
You must be signed in to change notification settings - Fork 2.5k
[In progress] Fuzzer for GNUTLS #135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… was not able to make it work
GNUTLS clearly qualifies, I think. We'll need contact(s) in project.yaml. |
close(socket_fds[1]); | ||
gnutls_deinit(session); | ||
gnutls_certificate_free_credentials(xcred); | ||
return 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The client looks reasonable.
@nmav - are you ok with putting your email in maintainer's email in project.yaml. This way, all the security bugs and stability bugs get routed to you ? Or another email from your team ? |
RUN git clone https://gitlab.com/gnutls/gnutls.git | ||
RUN cd gnutls && git submodule update --init | ||
|
||
# Using the client_corpus transcripts from boringssl, they're a decent starting point. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could also try to look at the openssl corpus, it should actually have a larger initial coverage.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The more interesting parts of BoringSSL's corpus actually rely on our fuzzer mode, so they won't work in normal implementations. The "no_fuzzer_mode" variants might, but the fuzzer will get stuck at crypto.
(By the way, @kroeckx, I'm curious how you all are generating your corpus. I'd love to trade ideas on this stuff. We record ours from our test suite as documented in that link.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So one of the things I did recently is to make the random number generator deterministic. I only need this during the client and server fuzzer so far. I'm hoping to be able to get past all the checks that way, but I'm not sure I'm currently getting past them. I might either need to help the fuzzer to find the right value or do like you and modify the code to still do the checks but then continue if it failed anyway.
It really helps some fuzzers if you can give it interesting input. If it was stuck, adding a new interesting file will will suddenly make it find lots of new stuff. So it's really important that you find a good initial set, and it's not always easy to find or generate it.
For the x509 fuzzer what really helped was adding lots of real certificates. That really boosted the coverage. I imported 250K real certificates it seems. For the crl fuzzer I imported all CA CRLs I could download which is like 25K files. But for something like cms it seems hard to find things.
I actually have no idea how good the client and server corpus is currently. I planned on dumping files from the test suite like you seem to be doing, but I never got around of doing that.
In any case, I try to update the corpus in openssl's repository with the latest minimized coverage regularly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, okay. Yeah, our PRNG is also deterministic in the fuzzers (see link). It means, if everything matches just right, you'll negotiate the same keys. But you can't modify anything around a crypto invariant. Encrypted records can't be modified. Signature checks likewise force you to leave everything signed unmodified. The handshake transcript bits mean your transcripts must match fuzzer's config exactly; any ClientHello deviance and transcript-based checks fail.
Most of the TLS 1.2 handshake is unencrypted though, so maybe deterministic PRNG is sufficient to explore most of it, renego and resumption aside, and assuming you always keep it up-to-date? TLS 1.3 is much more aggressively encrypted and transcript-sensitive, so I suspect that needs modification. Note: on our end, we still need to go analyze the coverage more carefully, so I'm mostly speculating.
(Note the deterministic PRNG also means everyone's corpus is specific to their implementation and PRNG. The other nice thing about fuzzer mode is transcripts become much more portable, assuming everyone agrees on what fuzzer mode means. Downside, of course, is you're not quite fuzzing the real code.)
By the way, since you're running against our test suite now, that has a -transcript-dir
flag to get transcripts out. Take a look at the fuzz/refresh_ssl_corpora.sh
script.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've been thinking if I need to put some variances in what the client or server supports. For instance the list of supported ciphers, curves, ... But for the server fuzzer it's up to the fuzzer to do variances in the client hello, and for the client fuzzer we'll could add or remove more support, but the fuzzer will end up selecting things. So I currently don't think this will have much effect. I just need to add the support in both the client and server for as much as possible, which as you indicate might actually invalidate some of the existing corpus, but then find more.
Will take a poke (one nice thing is that Google's code hosting thing lets
you download a directory as a tar ball, that's swell). At some point maybe
deeper thought should happen about corpus sharing, but I don't want to be
in charge of that :-)
…On Thu, Dec 8, 2016 at 2:39 PM, Kurt Roeckx ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In projects/gnutls/Dockerfile
<#135 (review)>:
> +# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+FROM ossfuzz/base-libfuzzer
+MAINTAINER ***@***.***
+RUN apt-get install -y make autoconf automake libtool autopoint libnettle6 nettle-dev pkg-config gperf bison autogen texinfo curl
+
+RUN git clone https://gitlab.com/gnutls/gnutls.git
+RUN cd gnutls && git submodule update --init
+
+# Using the client_corpus transcripts from boringssl, they're a decent starting point.
You could also try to look at the openssl corpus, it should actually have
a larger initial coverage.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#135 (review)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAADBKJBHAaRhlCWIHPcL0bOajh41wfMks5rGFzygaJpZM4LE7Ey>
.
--
"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
GPG Key fingerprint: D1B3 ADC0 E023 8CA6
|
@inferno-chromium yes fine with me. |
@alex here is the first kill: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=269 |
I'd like @nmav to confirm he's ok with that before I add myself -- I have
no previous experience with gnutls :-)
…On Fri, Dec 9, 2016 at 5:42 PM, Kostya Serebryany ***@***.***> wrote:
@alex <https://github.com/alex> here is the first kill:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=269
But you are not CC-ed since you are not listed in gnutls/project.yaml
Given @nmav <https://github.com/nmav>'s approval above I think we should
add you there so that you are CC-ed automatically.
Plz zend the pull request to add yourself to gnutls/project.yaml
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#135 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAADBGCD3oPAVPsZcKMYhOFWRs_oLUo-ks5rGdlOgaJpZM4LE7Ey>
.
--
"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
GPG Key fingerprint: D1B3 ADC0 E023 8CA6
|
@alex @nmav - and the list is growing, new one - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=272. @nmav - can you confirm if you are ok with adding @alex on the auto-cc list in project.yaml. |
@alex BTW, you may want to extend the seed corpora with https://github.com/openssl/openssl/tree/master/fuzz/corpora |
@inferno-chromium certainly |
Our current line coverage measurement includes the lines from the fuzz target. It's fairer to measure the lines from the project only, not the fuzz target, so that covering more lines in the fuzz target will not increase the code coverage. A PoE: [`cppitertools-Iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > &> zero_length_end(std::__1::allocator<char> >)`](https://llm-exp.oss-fuzz.com/Result-reports/scheduled/2024-03-02-weekly-all/benchmark/output-cppitertools-_zn4iter4impl10combinatorirnst3__112basic_stringicns2_11char_traitsiceens2_9allocatoriceeeee8iterato)
The code excludes line coverage of fuzz target, which duplicates #135.
Adds `run_tests.sh` for the libtiff project. `run_tests.sh` is used as part of Chronos with cached builds: https://github.com/google/oss-fuzz/tree/master/infra/experimental/chronos#check-tests The last lines of `infra/experimental/chronos/check_tests.sh libtiff c` are: ``` Running tests... Test project /src/libtiff Start 1: test_signed_tags 1/159 Test #1: test_signed_tags ............................................ Passed 0.02 sec Start 2: ascii_tag 2/159 Test #2: ascii_tag ................................................... Passed 0.01 sec Start 3: long_tag 3/159 Test #3: long_tag .................................................... Passed 0.01 sec Start 4: short_tag 4/159 Test #4: short_tag ................................................... Passed 0.01 sec Start 5: strip_rw 5/159 Test #5: strip_rw .................................................... Passed 0.02 sec Start 6: rewrite 6/159 Test #6: rewrite ..................................................... Passed 0.02 sec Start 7: raw_decode 7/159 Test #7: raw_decode .................................................. Passed 0.01 sec Start 8: custom_dir 8/159 Test #8: custom_dir .................................................. Passed 0.01 sec Start 9: rational_precision2double 9/159 Test #9: rational_precision2double ................................... Passed 0.02 sec Start 10: test_write_read_tags 10/159 Test #10: test_write_read_tags ........................................ Passed 0.03 sec Start 11: test_transferfunction_write_read 11/159 Test #11: test_transferfunction_write_read ............................ Passed 0.02 sec Start 12: custom_dir_EXIF_231 12/159 Test #12: custom_dir_EXIF_231 ......................................... Passed 0.02 sec Start 13: defer_strile_loading 13/159 Test #13: defer_strile_loading ........................................ Passed 0.33 sec Start 14: defer_strile_writing 14/159 Test #14: defer_strile_writing ........................................ Passed 0.02 sec Start 15: test_directory 15/159 Test #15: test_directory .............................................. Passed 0.09 sec Start 16: test_IFD_enlargement 16/159 Test #16: test_IFD_enlargement ........................................ Passed 0.17 sec Start 17: testtypes 17/159 Test #17: testtypes ................................................... Passed 0.01 sec Start 18: test_open_options 18/159 Test #18: test_open_options ........................................... Passed 0.01 sec Start 19: test_append_to_strip 19/159 Test #19: test_append_to_strip ........................................ Passed 0.01 sec Start 20: test_ifd_loop_detection 20/159 Test #20: test_ifd_loop_detection ..................................... Passed 0.02 sec Start 21: test_RGBAImage 21/159 Test #21: test_RGBAImage .............................................. Passed 3.89 sec Start 22: ppm2tiff-miniswhite-miniswhite-1c-1b 22/159 Test #22: ppm2tiff-miniswhite-miniswhite-1c-1b ........................ Passed 0.63 sec Start 23: ppm2tiff-minisblack-minisblack-1c-8b 23/159 Test #23: ppm2tiff-minisblack-minisblack-1c-8b ........................ Passed 0.02 sec Start 24: ppm2tiff-rgb-rgb-3c-16b 24/159 Test #24: ppm2tiff-rgb-rgb-3c-16b ..................................... Passed 0.02 sec Start 25: ppm2tiff-rgb-rgb-3c-8b 25/159 Test #25: ppm2tiff-rgb-rgb-3c-8b ...................................... Passed 0.02 sec Start 26: tiffcp-TIFFIMG-custom_dir_EXIF_GPS 26/159 Test #26: tiffcp-TIFFIMG-custom_dir_EXIF_GPS .......................... Passed 0.02 sec Start 27: tiffcp-TIFFIMG-logluv-3c-16b 27/159 Test #27: tiffcp-TIFFIMG-logluv-3c-16b ................................ Passed 0.02 sec Start 28: tiffcp-TIFFIMG-minisblack-1c-16b 28/159 Test #28: tiffcp-TIFFIMG-minisblack-1c-16b ............................ Passed 0.03 sec Start 29: tiffcp-TIFFIMG-minisblack-1c-8b 29/159 Test #29: tiffcp-TIFFIMG-minisblack-1c-8b ............................. Passed 0.03 sec Start 30: tiffcp-TIFFIMG-minisblack-2c-8b-alpha 30/159 Test #30: tiffcp-TIFFIMG-minisblack-2c-8b-alpha ....................... Passed 0.02 sec Start 31: tiffcp-TIFFIMG-miniswhite-1c-1b 31/159 Test #31: tiffcp-TIFFIMG-miniswhite-1c-1b ............................. Passed 0.02 sec Start 32: tiffcp-TIFFIMG-palette-1c-1b 32/159 Test #32: tiffcp-TIFFIMG-palette-1c-1b ................................ Passed 0.02 sec Start 33: tiffcp-TIFFIMG-palette-1c-4b 33/159 Test #33: tiffcp-TIFFIMG-palette-1c-4b ................................ Passed 0.02 sec Start 34: tiffcp-TIFFIMG-palette-1c-8b 34/159 Test #34: tiffcp-TIFFIMG-palette-1c-8b ................................ Passed 0.02 sec Start 35: tiffcp-TIFFIMG-rgb-3c-16b 35/159 Test #35: tiffcp-TIFFIMG-rgb-3c-16b ................................... Passed 0.02 sec Start 36: tiffcp-TIFFIMG-rgb-3c-8b 36/159 Test #36: tiffcp-TIFFIMG-rgb-3c-8b .................................... Passed 0.02 sec Start 37: tiffcp-TIFFIMG-quad-lzw-compat 37/159 Test #37: tiffcp-TIFFIMG-quad-lzw-compat .............................. Passed 0.04 sec Start 38: tiffcp-TIFFIMG-lzw-single-strip 38/159 Test #38: tiffcp-TIFFIMG-lzw-single-strip ............................. Passed 0.05 sec Start 39: tiffcp-TIFFIMG-testfax4 39/159 Test #39: tiffcp-TIFFIMG-testfax4 ..................................... Passed 0.05 sec Start 40: tiffcp-TIFFIMG-testfax3_bug_513 40/159 Test #40: tiffcp-TIFFIMG-testfax3_bug_513 ............................. Passed 0.02 sec Start 41: tiffcp-TIFFIMG-32bpp-None 41/159 Test #41: tiffcp-TIFFIMG-32bpp-None ................................... Passed 0.02 sec Start 42: tiffcp-TIFFIMG-quad-tile 42/159 Test #42: tiffcp-TIFFIMG-quad-tile .................................... Passed 0.03 sec Start 43: tiffcp-g3-miniswhite-1c-1b 43/159 Test #43: tiffcp-g3-miniswhite-1c-1b .................................. Passed 0.01 sec Start 44: tiffcp-g31d-miniswhite-1c-1b 44/159 Test #44: tiffcp-g31d-miniswhite-1c-1b ................................ Passed 0.02 sec Start 45: tiffcp-g31dfill-miniswhite-1c-1b 45/159 Test #45: tiffcp-g31dfill-miniswhite-1c-1b ............................ Passed 0.01 sec Start 46: tiffcp-g32d-miniswhite-1c-1b 46/159 Test #46: tiffcp-g32d-miniswhite-1c-1b ................................ Passed 0.02 sec Start 47: tiffcp-g32dfill-miniswhite-1c-1b 47/159 Test #47: tiffcp-g32dfill-miniswhite-1c-1b ............................ Passed 0.01 sec Start 48: tiffcp-g4-miniswhite-1c-1b 48/159 Test #48: tiffcp-g4-miniswhite-1c-1b .................................. Passed 0.02 sec Start 49: tiffcp-logluv-logluv-3c-16b 49/159 Test #49: tiffcp-logluv-logluv-3c-16b ................................. Passed 0.02 sec Start 50: tiffcp-thumbnail-miniswhite-1c-1b 50/159 Test #50: tiffcp-thumbnail-miniswhite-1c-1b ........................... Passed 0.03 sec Start 51: tiffcp-none-quad-lzw-compat 51/159 Test #51: tiffcp-none-quad-lzw-compat ................................. Passed 0.02 sec Start 52: tiffcp-noner1-lzw-single-strip 52/159 Test #52: tiffcp-noner1-lzw-single-strip .............................. Passed 0.03 sec Start 53: tiffcp-float64_lzw_2_le-test_float64_predictor2_le_lzw 53/159 Test #53: tiffcp-float64_lzw_2_le-test_float64_predictor2_le_lzw ...... Passed 0.01 sec Start 54: tiffcp-float64_lzw_2_be-test_float64_predictor2_be_lzw 54/159 Test #54: tiffcp-float64_lzw_2_be-test_float64_predictor2_be_lzw ...... Passed 0.01 sec Start 55: tiff2rgba-32BPP-32bpp-None 55/159 Test #55: tiff2rgba-32BPP-32bpp-None .................................. Passed 0.02 sec Start 56: tiffcp-32BPP-JPEG-32bpp-None-jpeg 56/159 Test #56: tiffcp-32BPP-JPEG-32bpp-None-jpeg ........................... Passed 0.02 sec Start 57: tiffcp-jbig-lzw-single-strip 57/159 Test #57: tiffcp-jbig-lzw-single-strip ................................ Passed 0.18 sec Start 58: tiffdump-miniswhite-1c-1b 58/159 Test #58: tiffdump-miniswhite-1c-1b ................................... Passed 0.01 sec Start 59: tiffinfo-custom_dir_EXIF_GPS 59/159 Test #59: tiffinfo-custom_dir_EXIF_GPS ................................ Passed 0.02 sec Start 60: tiffinfo-minisblack-1c-16b 60/159 Test #60: tiffinfo-minisblack-1c-16b .................................. Passed 0.02 sec Start 61: tiffinfo-tiff_with_subifd_chain 61/159 Test #61: tiffinfo-tiff_with_subifd_chain ............................. Passed 0.01 sec Start 62: tiffcp-split 62/159 Test #62: tiffcp-split ................................................ Passed 0.03 sec Start 63: tiffcp-split-join 63/159 Test #63: tiffcp-split-join ........................................... Passed 0.04 sec Start 64: tiff2pdf-miniswhite-1c-1b 64/159 Test #64: tiff2pdf-miniswhite-1c-1b ................................... Passed 0.02 sec Start 65: tiff2ps-miniswhite-1c-1b-ps-1 65/159 Test #65: tiff2ps-miniswhite-1c-1b-ps-1 ............................... Passed 0.02 sec Start 66: tiff2ps-miniswhite-1c-1b-ps-2 66/159 Test #66: tiff2ps-miniswhite-1c-1b-ps-2 ............................... Passed 0.01 sec Start 67: tiff2ps-miniswhite-1c-1b-ps-3 67/159 Test #67: tiff2ps-miniswhite-1c-1b-ps-3 ............................... Passed 0.02 sec Start 68: tiff2ps-miniswhite-1c-1b-eps-1 68/159 Test #68: tiff2ps-miniswhite-1c-1b-eps-1 .............................. Passed 0.01 sec Start 69: tiff2bw-default-palette-1c-8b 69/159 Test #69: tiff2bw-default-palette-1c-8b ............................... Passed 0.02 sec Start 70: tiff2bw-default-rgb-3c-8b 70/159 Test #70: tiff2bw-default-rgb-3c-8b ................................... Passed 0.02 sec Start 71: tiff2bw-default-quad-lzw-compat 71/159 Test #71: tiff2bw-default-quad-lzw-compat ............................. Passed 0.03 sec Start 72: tiff2rgba-default-custom_dir_EXIF_GPS 72/159 Test #72: tiff2rgba-default-custom_dir_EXIF_GPS ....................... Passed 0.03 sec Start 73: tiff2rgba-default-logluv-3c-16b 73/159 Test #73: tiff2rgba-default-logluv-3c-16b ............................. Passed 0.02 sec Start 74: tiff2rgba-default-minisblack-1c-16b 74/159 Test #74: tiff2rgba-default-minisblack-1c-16b ......................... Passed 0.03 sec Start 75: tiff2rgba-default-minisblack-1c-8b 75/159 Test #75: tiff2rgba-default-minisblack-1c-8b .......................... Passed 0.02 sec Start 76: tiff2rgba-default-minisblack-2c-8b-alpha 76/159 Test #76: tiff2rgba-default-minisblack-2c-8b-alpha .................... Passed 0.02 sec Start 77: tiff2rgba-default-miniswhite-1c-1b 77/159 Test #77: tiff2rgba-default-miniswhite-1c-1b .......................... Passed 0.03 sec Start 78: tiff2rgba-default-palette-1c-1b 78/159 Test #78: tiff2rgba-default-palette-1c-1b ............................. Passed 0.02 sec Start 79: tiff2rgba-default-palette-1c-4b 79/159 Test #79: tiff2rgba-default-palette-1c-4b ............................. Passed 0.03 sec Start 80: tiff2rgba-default-palette-1c-8b 80/159 Test #80: tiff2rgba-default-palette-1c-8b ............................. Passed 0.03 sec Start 81: tiff2rgba-default-rgb-3c-16b 81/159 Test #81: tiff2rgba-default-rgb-3c-16b ................................ Passed 0.03 sec Start 82: tiff2rgba-default-rgb-3c-8b 82/159 Test #82: tiff2rgba-default-rgb-3c-8b ................................. Passed 0.03 sec Start 83: tiff2rgba-default-quad-lzw-compat 83/159 Test #83: tiff2rgba-default-quad-lzw-compat ........................... Passed 0.04 sec Start 84: tiff2rgba-default-lzw-single-strip 84/159 Test #84: tiff2rgba-default-lzw-single-strip .......................... Passed 0.39 sec Start 85: tiff2rgba-default-testfax4 85/159 Test #85: tiff2rgba-default-testfax4 .................................. Passed 0.19 sec Start 86: tiff2rgba-default-testfax3_bug_513 86/159 Test #86: tiff2rgba-default-testfax3_bug_513 .......................... Passed 0.03 sec Start 87: tiff2rgba-default-32bpp-None 87/159 Test #87: tiff2rgba-default-32bpp-None ................................ Passed 0.02 sec Start 88: tiff2rgba-default-quad-tile 88/159 Test #88: tiff2rgba-default-quad-tile ................................. Passed 0.04 sec Start 89: tiff2rgba-default-ojpeg_zackthecat_subsamp22_single_strip 89/159 Test #89: tiff2rgba-default-ojpeg_zackthecat_subsamp22_single_strip ... Passed 0.03 sec Start 90: tiff2rgba-default-ojpeg_chewey_subsamp21_multi_strip 90/159 Test #90: tiff2rgba-default-ojpeg_chewey_subsamp21_multi_strip ........ Passed 0.05 sec Start 91: tiff2rgba-default-ojpeg_single_strip_no_rowsperstrip 91/159 Test #91: tiff2rgba-default-ojpeg_single_strip_no_rowsperstrip ........ Passed 0.03 sec Start 92: tiffcrop-R90-custom_dir_EXIF_GPS 92/159 Test #92: tiffcrop-R90-custom_dir_EXIF_GPS ............................ Passed 0.02 sec Start 93: tiffcrop-R90-logluv-3c-16b 93/159 Test #93: tiffcrop-R90-logluv-3c-16b .................................. Passed 0.02 sec Start 94: tiffcrop-R90-minisblack-1c-16b 94/159 Test #94: tiffcrop-R90-minisblack-1c-16b .............................. Passed 0.02 sec Start 95: tiffcrop-R90-minisblack-1c-8b 95/159 Test #95: tiffcrop-R90-minisblack-1c-8b ............................... Passed 0.03 sec Start 96: tiffcrop-R90-minisblack-2c-8b-alpha 96/159 Test #96: tiffcrop-R90-minisblack-2c-8b-alpha ......................... Passed 0.02 sec Start 97: tiffcrop-R90-miniswhite-1c-1b 97/159 Test #97: tiffcrop-R90-miniswhite-1c-1b ............................... Passed 0.03 sec Start 98: tiffcrop-R90-palette-1c-1b 98/159 Test #98: tiffcrop-R90-palette-1c-1b .................................. Passed 0.03 sec Start 99: tiffcrop-R90-palette-1c-4b 99/159 Test #99: tiffcrop-R90-palette-1c-4b .................................. Passed 0.03 sec Start 100: tiffcrop-R90-palette-1c-8b 100/159 Test #100: tiffcrop-R90-palette-1c-8b .................................. Passed 0.02 sec Start 101: tiffcrop-R90-rgb-3c-16b 101/159 Test #101: tiffcrop-R90-rgb-3c-16b ..................................... Passed 0.03 sec Start 102: tiffcrop-R90-rgb-3c-8b 102/159 Test #102: tiffcrop-R90-rgb-3c-8b ...................................... Passed 0.02 sec Start 103: tiffcrop-R90-quad-lzw-compat 103/159 Test #103: tiffcrop-R90-quad-lzw-compat ................................ Passed 0.04 sec Start 104: tiffcrop-R90-lzw-single-strip 104/159 Test #104: tiffcrop-R90-lzw-single-strip ............................... Passed 0.21 sec Start 105: tiffcrop-R90-testfax4 105/159 Test #105: tiffcrop-R90-testfax4 ....................................... Passed 0.12 sec Start 106: tiffcrop-R90-testfax3_bug_513 106/159 Test #106: tiffcrop-R90-testfax3_bug_513 ............................... Passed 0.02 sec Start 107: tiffcrop-R90-32bpp-None 107/159 Test #107: tiffcrop-R90-32bpp-None ..................................... Passed 0.02 sec Start 108: tiffcrop-R90-quad-tile 108/159 Test #108: tiffcrop-R90-quad-tile ...................................... Passed 0.03 sec Start 109: tiffcrop-doubleflip-custom_dir_EXIF_GPS 109/159 Test #109: tiffcrop-doubleflip-custom_dir_EXIF_GPS ..................... Passed 0.02 sec Start 110: tiffcrop-doubleflip-logluv-3c-16b 110/159 Test #110: tiffcrop-doubleflip-logluv-3c-16b ........................... Passed 0.02 sec Start 111: tiffcrop-doubleflip-minisblack-1c-16b 111/159 Test #111: tiffcrop-doubleflip-minisblack-1c-16b ....................... Passed 0.02 sec Start 112: tiffcrop-doubleflip-minisblack-1c-8b 112/159 Test #112: tiffcrop-doubleflip-minisblack-1c-8b ........................ Passed 0.02 sec Start 113: tiffcrop-doubleflip-minisblack-2c-8b-alpha 113/159 Test #113: tiffcrop-doubleflip-minisblack-2c-8b-alpha .................. Passed 0.02 sec Start 114: tiffcrop-doubleflip-miniswhite-1c-1b 114/159 Test #114: tiffcrop-doubleflip-miniswhite-1c-1b ........................ Passed 0.03 sec Start 115: tiffcrop-doubleflip-palette-1c-1b 115/159 Test #115: tiffcrop-doubleflip-palette-1c-1b ........................... Passed 0.02 sec Start 116: tiffcrop-doubleflip-palette-1c-4b 116/159 Test #116: tiffcrop-doubleflip-palette-1c-4b ........................... Passed 0.03 sec Start 117: tiffcrop-doubleflip-palette-1c-8b 117/159 Test #117: tiffcrop-doubleflip-palette-1c-8b ........................... Passed 0.02 sec Start 118: tiffcrop-doubleflip-rgb-3c-16b 118/159 Test #118: tiffcrop-doubleflip-rgb-3c-16b .............................. Passed 0.03 sec Start 119: tiffcrop-doubleflip-rgb-3c-8b 119/159 Test #119: tiffcrop-doubleflip-rgb-3c-8b ............................... Passed 0.02 sec Start 120: tiffcrop-doubleflip-quad-lzw-compat 120/159 Test #120: tiffcrop-doubleflip-quad-lzw-compat ......................... Passed 0.04 sec Start 121: tiffcrop-doubleflip-lzw-single-strip 121/159 Test #121: tiffcrop-doubleflip-lzw-single-strip ........................ Passed 0.21 sec Start 122: tiffcrop-doubleflip-testfax4 122/159 Test #122: tiffcrop-doubleflip-testfax4 ................................ Passed 0.11 sec Start 123: tiffcrop-doubleflip-testfax3_bug_513 123/159 Test #123: tiffcrop-doubleflip-testfax3_bug_513 ........................ Passed 0.02 sec Start 124: tiffcrop-doubleflip-32bpp-None 124/159 Test #124: tiffcrop-doubleflip-32bpp-None .............................. Passed 0.03 sec Start 125: tiffcrop-doubleflip-quad-tile 125/159 Test #125: tiffcrop-doubleflip-quad-tile ............................... Passed 0.03 sec Start 126: tiffcrop-extract-custom_dir_EXIF_GPS 126/159 Test #126: tiffcrop-extract-custom_dir_EXIF_GPS ........................ Passed 0.03 sec Start 127: tiffcrop-extract-logluv-3c-16b 127/159 Test #127: tiffcrop-extract-logluv-3c-16b .............................. Passed 0.02 sec Start 128: tiffcrop-extract-minisblack-1c-16b 128/159 Test #128: tiffcrop-extract-minisblack-1c-16b .......................... Passed 0.03 sec Start 129: tiffcrop-extract-minisblack-1c-8b 129/159 Test #129: tiffcrop-extract-minisblack-1c-8b ........................... Passed 0.02 sec Start 130: tiffcrop-extract-minisblack-2c-8b-alpha 130/159 Test #130: tiffcrop-extract-minisblack-2c-8b-alpha ..................... Passed 0.02 sec Start 131: tiffcrop-extract-miniswhite-1c-1b 131/159 Test #131: tiffcrop-extract-miniswhite-1c-1b ........................... Passed 0.03 sec Start 132: tiffcrop-extract-palette-1c-1b 132/159 Test #132: tiffcrop-extract-palette-1c-1b .............................. Passed 0.02 sec Start 133: tiffcrop-extract-palette-1c-4b 133/159 Test #133: tiffcrop-extract-palette-1c-4b .............................. Passed 0.02 sec Start 134: tiffcrop-extract-palette-1c-8b 134/159 Test #134: tiffcrop-extract-palette-1c-8b .............................. Passed 0.02 sec Start 135: tiffcrop-extract-rgb-3c-16b 135/159 Test #135: tiffcrop-extract-rgb-3c-16b ................................. Passed 0.02 sec Start 136: tiffcrop-extract-rgb-3c-8b 136/159 Test #136: tiffcrop-extract-rgb-3c-8b .................................. Passed 0.02 sec Start 137: tiffcrop-extract-quad-lzw-compat 137/159 Test #137: tiffcrop-extract-quad-lzw-compat ............................ Passed 0.03 sec Start 138: tiffcrop-extract-lzw-single-strip 138/159 Test #138: tiffcrop-extract-lzw-single-strip ........................... Passed 0.03 sec Start 139: tiffcrop-extract-testfax4 139/159 Test #139: tiffcrop-extract-testfax4 ................................... Passed 0.03 sec Start 140: tiffcrop-extract-testfax3_bug_513 140/159 Test #140: tiffcrop-extract-testfax3_bug_513 ........................... Passed 0.02 sec Start 141: tiffcrop-extract-32bpp-None 141/159 Test #141: tiffcrop-extract-32bpp-None ................................. Passed 0.02 sec Start 142: tiffcrop-extract-quad-tile 142/159 Test #142: tiffcrop-extract-quad-tile .................................. Passed 0.03 sec Start 143: tiffcrop-extractz14-custom_dir_EXIF_GPS 143/159 Test #143: tiffcrop-extractz14-custom_dir_EXIF_GPS ..................... Passed 0.02 sec Start 144: tiffcrop-extractz14-logluv-3c-16b 144/159 Test #144: tiffcrop-extractz14-logluv-3c-16b ........................... Passed 0.02 sec Start 145: tiffcrop-extractz14-minisblack-1c-16b 145/159 Test #145: tiffcrop-extractz14-minisblack-1c-16b ....................... Passed 0.03 sec Start 146: tiffcrop-extractz14-minisblack-1c-8b 146/159 Test #146: tiffcrop-extractz14-minisblack-1c-8b ........................ Passed 0.02 sec Start 147: tiffcrop-extractz14-minisblack-2c-8b-alpha 147/159 Test #147: tiffcrop-extractz14-minisblack-2c-8b-alpha .................. Passed 0.03 sec Start 148: tiffcrop-extractz14-miniswhite-1c-1b 148/159 Test #148: tiffcrop-extractz14-miniswhite-1c-1b ........................ Passed 0.02 sec Start 149: tiffcrop-extractz14-palette-1c-1b 149/159 Test #149: tiffcrop-extractz14-palette-1c-1b ........................... Passed 0.02 sec Start 150: tiffcrop-extractz14-palette-1c-4b 150/159 Test #150: tiffcrop-extractz14-palette-1c-4b ........................... Passed 0.02 sec Start 151: tiffcrop-extractz14-palette-1c-8b 151/159 Test #151: tiffcrop-extractz14-palette-1c-8b ........................... Passed 0.02 sec Start 152: tiffcrop-extractz14-rgb-3c-16b 152/159 Test #152: tiffcrop-extractz14-rgb-3c-16b .............................. Passed 0.02 sec Start 153: tiffcrop-extractz14-rgb-3c-8b 153/159 Test #153: tiffcrop-extractz14-rgb-3c-8b ............................... Passed 0.03 sec Start 154: tiffcrop-extractz14-quad-lzw-compat 154/159 Test #154: tiffcrop-extractz14-quad-lzw-compat ......................... Passed 0.03 sec Start 155: tiffcrop-extractz14-lzw-single-strip 155/159 Test #155: tiffcrop-extractz14-lzw-single-strip ........................ Passed 0.18 sec Start 156: tiffcrop-extractz14-testfax4 156/159 Test #156: tiffcrop-extractz14-testfax4 ................................ Passed 0.09 sec Start 157: tiffcrop-extractz14-testfax3_bug_513 157/159 Test #157: tiffcrop-extractz14-testfax3_bug_513 ........................ Passed 0.02 sec Start 158: tiffcrop-extractz14-32bpp-None 158/159 Test #158: tiffcrop-extractz14-32bpp-None .............................. Passed 0.02 sec Start 159: tiffcrop-extractz14-quad-tile 159/159 Test #159: tiffcrop-extractz14-quad-tile ............................... Passed 0.03 sec 100% tests passed, 0 tests failed out of 159 Total Test time (real) = 10.33 sec ``` Signed-off-by: Adam Korczynski <adam@adalogics.com>
Adds `run_tests.sh` to the libigl project. `run_tests.sh` is used as part of Chronos with cached builds: https://github.com/google/oss-fuzz/tree/master/infra/experimental/chronos#check-tests Output of ./infra/experimental/chronos/check_tests.sh libigl c++: ``` Test project /src/libigl/build-dir Start 1: AABB: find_2d Start 2: AABB: find_3d Start 3: AABB: insert Start 4: AABB: dynamic Start 5: MshLoader Start 6: MshSaver Start 7: accumarray: matlab_help Start 8: accumarray: scalar 1/214 Test #3: AABB: insert ............................................ Passed 0.11 sec Start 9: adjacency_list: simple 2/214 Test #1: AABB: find_2d ........................................... Passed 0.46 sec Start 10: avg_edge_length: cube 3/214 Test #2: AABB: find_3d ........................................... Passed 0.14 sec Start 11: barycentric_interpolation: two-triangles 4/214 Test #8: accumarray: scalar ...................................... Passed 0.13 sec Start 12: bbw: decimated_knight 5/214 Test #7: accumarray: matlab_help ................................. Passed 0.14 sec Start 13: bezier: ease 6/214 Test #9: adjacency_list: simple .................................. Passed 0.12 sec Start 14: blkdiag: 3-matrices 7/214 Test #13: bezier: ease ............................................ Passed 0.10 sec Start 15: boundary_facets: single_tet_volume 8/214 Test #11: barycentric_interpolation: two-triangles ................ Passed 0.13 sec Start 16: boundary_facets: single_tet 9/214 Test #5: MshLoader ............................................... Passed 0.27 sec Start 17: boundary_facets: single_cube 10/214 Test #10: avg_edge_length: cube ................................... Passed 0.16 sec Start 18: boundary_facets: non-manifold 11/214 Test #14: blkdiag: 3-matrices ..................................... Passed 0.10 sec Start 19: boundary_loop: cube 12/214 Test #17: boundary_facets: single_cube ............................ Passed 0.10 sec Start 20: boundary_loop: bunny 13/214 Test #18: boundary_facets: non-manifold ........................... Passed 0.11 sec Start 21: cat: rows 14/214 Test #15: boundary_facets: single_tet_volume ...................... Passed 0.15 sec Start 22: cat: cols 15/214 Test #16: boundary_facets: single_tet ............................. Passed 0.15 sec Start 23: centroid: 16/214 Test #6: MshSaver ................................................ Passed 0.45 sec Start 24: circulation: single_edge 17/214 Test #19: boundary_loop: cube ..................................... Passed 0.15 sec Start 25: circumradius: equilateral-triangle 18/214 Test #22: cat: cols ............................................... Passed 0.09 sec Start 26: circumradius: right-triangle 19/214 Test #23: centroid: .............................................. Passed 0.11 sec Start 27: circumradius: obtuse-triangle 20/214 Test #24: circulation: single_edge ................................ Passed 0.08 sec Start 28: circumradius: equilateral-tetrahedra 21/214 Test #21: cat: rows ............................................... Passed 0.20 sec Start 29: circumradius: right-tetrahedra 22/214 Test #26: circumradius: right-triangle ............................ Passed 0.11 sec Start 30: circumradius: obtuse-tetrahedra 23/214 Test #25: circumradius: equilateral-triangle ...................... Passed 0.13 sec Start 31: cotmatrix: poly 24/214 Test #27: circumradius: obtuse-triangle ........................... Passed 0.12 sec Start 32: cotmatrix: constant_in_null_space 25/214 Test #28: circumradius: equilateral-tetrahedra .................... Passed 0.14 sec Start 33: cotmatrix: cube 26/214 Test #29: circumradius: right-tetrahedra .......................... Passed 0.13 sec Start 34: cotmatrix: tetrahedron 27/214 Test #30: circumradius: obtuse-tetrahedra ......................... Passed 0.19 sec Start 35: cotmatrix_entries: simple 28/214 Test #34: cotmatrix: tetrahedron .................................. Passed 0.09 sec Start 36: cotmatrix_entries: intrinsic 29/214 Test #33: cotmatrix: cube ......................................... Passed 0.17 sec Start 37: cotmatrix_intrinsic: periodic 30/214 Test #35: cotmatrix_entries: simple ............................... Passed 0.11 sec Start 38: cotmatrix_intrinsic: manifold_meshes 31/214 Test #36: cotmatrix_entries: intrinsic ............................ Passed 0.10 sec Start 39: cr_vector_curvature_correction: cube 32/214 Test #37: cotmatrix_intrinsic: periodic ........................... Passed 0.11 sec Start 40: cr_vector_curvature_correction: annulus 33/214 Test #39: cr_vector_curvature_correction: cube .................... Passed 0.14 sec Start 41: cr_vector_curvature_correction: hemisphere 34/214 Test #41: cr_vector_curvature_correction: hemisphere .............. Passed 0.54 sec Start 42: cr_vector_laplacian: cube 35/214 Test #42: cr_vector_laplacian: cube ............................... Passed 0.15 sec Start 43: cumprod: col_factorial 36/214 Test #43: cumprod: col_factorial .................................. Passed 0.12 sec Start 44: cumprod: row_factorial 37/214 Test #44: cumprod: row_factorial .................................. Passed 0.12 sec Start 45: cumsum: col 38/214 Test #20: boundary_loop: bunny .................................... Passed 1.74 sec Start 46: cumsum: row 39/214 Test #45: cumsum: col ............................................. Passed 0.13 sec Start 47: curved_hessian_energy: cube 40/214 Test #46: cumsum: row ............................................. Passed 0.11 sec Start 48: curved_hessian_energy: annulus 41/214 Test #47: curved_hessian_energy: cube ............................. Passed 0.14 sec Start 49: cut_mesh: seperate mesh 42/214 Test #49: cut_mesh: seperate mesh ................................. Passed 0.11 sec Start 50: cut_mesh: single edge 43/214 Test #50: cut_mesh: single edge ................................... Passed 0.26 sec Start 51: cut_mesh: two triangles 44/214 Test #48: curved_hessian_energy: annulus .......................... Passed 0.46 sec Start 52: cut_to_disk: simple_tet 45/214 Test #52: cut_to_disk: simple_tet ................................. Passed 0.14 sec Start 53: cut_to_disk: two_disconnected_tet 46/214 Test #51: cut_mesh: two triangles ................................. Passed 0.18 sec Start 54: cut_to_disk: simple_square 47/214 Test #54: cut_to_disk: simple_square .............................. Passed 0.08 sec Start 55: cut_to_disk: torus 48/214 Test #53: cut_to_disk: two_disconnected_tet ....................... Passed 0.21 sec Start 56: cut_to_disk: cube 49/214 Test #55: cut_to_disk: torus ...................................... Passed 0.14 sec Start 57: cut_to_disk: annulus 50/214 Test #56: cut_to_disk: cube ....................................... Passed 0.18 sec Start 58: decimate: hemisphere 51/214 Test #58: decimate: hemisphere .................................... Passed 0.29 sec Start 59: decimate: closed 52/214 Test #59: decimate: closed ........................................ Passed 0.32 sec Start 60: delaunay_triangulation_issue_521 53/214 Test #60: delaunay_triangulation_issue_521 ........................ Passed 0.08 sec Start 61: dijkstra: cube 54/214 Test #61: dijkstra: cube .......................................... Passed 0.09 sec Start 62: dijkstra: discrete distances 55/214 Test #57: cut_to_disk: annulus .................................... Passed 0.99 sec Start 63: direct_delta_mush: cube 56/214 Test #62: dijkstra: discrete distances ............................ Passed 0.10 sec Start 64: dirname: examples 57/214 Test #64: dirname: examples ....................................... Passed 0.10 sec Start 65: doublearea: VF_vs_ABC 58/214 Test #63: direct_delta_mush: cube ................................. Passed 0.27 sec Start 66: ears: grid 59/214 Test #66: ears: grid .............................................. Passed 0.15 sec Start 67: ears: two-boundary 60/214 Test #32: cotmatrix: constant_in_null_space ....................... Passed 4.15 sec Start 68: edge_exists_near: tet 61/214 Test #68: edge_exists_near: tet ................................... Passed 0.09 sec Start 69: edge_flaps: verify 62/214 Test #38: cotmatrix_intrinsic: manifold_meshes .................... Passed 5.39 sec Start 70: edge_lengths: cube 63/214 Test #70: edge_lengths: cube ...................................... Passed 0.11 sec Start 71: edges_to_path: simple 64/214 Test #71: edges_to_path: simple ................................... Passed 0.12 sec Start 72: euler_characteristic: cube 65/214 Test #72: euler_characteristic: cube .............................. Passed 0.08 sec Start 73: euler_characteristic: triangle 66/214 Test #73: euler_characteristic: triangle .......................... Passed 0.10 sec Start 74: euler_characteristic: square 67/214 Test #74: euler_characteristic: square ............................ Passed 0.11 sec Start 75: euler_characteristic: torus 68/214 Test #75: euler_characteristic: torus ............................. Passed 0.13 sec Start 76: exact_geodesic: square 69/214 Test #76: exact_geodesic: square .................................. Passed 0.15 sec Start 77: facet_components: two_triangles 70/214 Test #77: facet_components: two_triangles ......................... Passed 0.17 sec Start 78: facet_components: truck 71/214 Test #78: facet_components: truck ................................. Passed 0.29 sec Start 79: fast_winding_number: one_point_cloud 72/214 Test #79: fast_winding_number: one_point_cloud .................... Passed 0.09 sec Start 80: fast_winding_number: meshes 73/214 Test #65: doublearea: VF_vs_ABC ................................... Passed 3.84 sec Start 81: fit_cubic_bezier: hemicircle 74/214 Test #81: fit_cubic_bezier: hemicircle ............................ Passed 0.46 sec Start 82: grad: laplace_grid 75/214 Test #82: grad: laplace_grid ...................................... Passed 0.28 sec Start 83: grad_intrinsic: laplace_grid 76/214 Test #83: grad_intrinsic: laplace_grid ............................ Passed 0.20 sec Start 84: grid: 3d 77/214 Test #84: grid: 3d ................................................ Passed 0.36 sec Start 85: grid: 2d 78/214 Test #85: grid: 2d ................................................ Passed 0.42 sec Start 86: guess_extension: all_meshes 79/214 Test #86: guess_extension: all_meshes ............................. Passed 0.29 sec Start 87: heat_geodesic: upsampled cube 80/214 Test #87: heat_geodesic: upsampled cube ........................... Passed 0.45 sec Start 88: icosahedron: simple 81/214 Test #88: icosahedron: simple ..................................... Passed 0.19 sec Start 89: internal_angles: 1e-7 82/214 Test #89: internal_angles: 1e-7 ................................... Passed 0.24 sec Start 90: intersection_blocking_collapse_edge_callbacks: simple 83/214 Test #90: intersection_blocking_collapse_edge_callbacks: simple ... Passed 0.20 sec Start 91: intrinsic_delaunay_cotmatrix: skewed_grid 84/214 Test #91: intrinsic_delaunay_cotmatrix: skewed_grid ............... Passed 0.32 sec Start 92: intrinsic_delaunay_cotmatrix: manifold_meshes 85/214 Test #69: edge_flaps: verify ...................................... Passed 7.18 sec Start 93: intrinsic_delaunay_triangulation: two_triangles 86/214 Test #93: intrinsic_delaunay_triangulation: two_triangles ......... Passed 0.21 sec Start 94: intrinsic_delaunay_triangulation: skewed_grid 87/214 Test #94: intrinsic_delaunay_triangulation: skewed_grid ........... Passed 0.20 sec Start 95: intrinsic_delaunay_triangulation: peaks 88/214 Test #95: intrinsic_delaunay_triangulation: peaks ................. Passed 0.20 sec Start 96: intrinsic_delaunay_triangulation: tet 89/214 Test #96: intrinsic_delaunay_triangulation: tet ................... Passed 0.22 sec Start 97: is_delaunay: two_triangles 90/214 Test #97: is_delaunay: two_triangles .............................. Passed 0.13 sec Start 98: is_edge_manifold: positive 91/214 Test #40: cr_vector_curvature_correction: annulus ................. Passed 14.72 sec Start 99: is_edge_manifold: negative 92/214 Test #99: is_edge_manifold: negative .............................. Passed 0.74 sec Start 100: is_intrinsic_delaunay: two_triangles 93/214 Test #100: is_intrinsic_delaunay: two_triangles .................... Passed 0.35 sec Start 101: is_irregular_vertex: simple 94/214 Test #101: is_irregular_vertex: simple ............................. Passed 0.62 sec Start 102: is_symmetric: sparse 95/214 Test #102: is_symmetric: sparse .................................... Passed 0.27 sec Start 103: is_symmetric: dense 96/214 Test #103: is_symmetric: dense ..................................... Passed 0.29 sec Start 104: ismember: simple 97/214 Test #104: ismember: simple ........................................ Passed 0.21 sec Start 105: isolines: broken-sphere 98/214 Test #105: isolines: broken-sphere ................................. Passed 1.03 sec Start 106: iterative_closest_point: identity 99/214 Test #98: is_edge_manifold: positive .............................. Passed 9.01 sec Start 107: knn 100/214 Test #107: knn ..................................................... Passed 0.22 sec Start 108: linprog: 2D-inequality 101/214 Test #108: linprog: 2D-inequality .................................. Passed 0.21 sec Start 109: linprog: 2D-inequality+2-equality 102/214 Test #109: linprog: 2D-inequality+2-equality ....................... Passed 0.41 sec Start 110: linprog: 2D-inequality+1-equality 103/214 Test #110: linprog: 2D-inequality+1-equality ....................... Passed 0.14 sec Start 111: ListToMatrixTest: matrix 104/214 Test #111: ListToMatrixTest: matrix ................................ Passed 0.12 sec Start 112: lscm: lscm_energy_check 105/214 Test #67: ears: two-boundary ...................................... Passed 20.95 sec Start 113: massmatrix: full 106/214 Test #92: intrinsic_delaunay_cotmatrix: manifold_meshes ........... Passed 15.85 sec Start 114: massmatrix: barycentric 107/214 Test #112: lscm: lscm_energy_check ................................. Passed 4.52 sec Start 115: massmatrix: cube_barycentric 108/214 Test #115: massmatrix: cube_barycentric ............................ Passed 0.21 sec Start 116: massmatrix: cube_full 109/214 Test #116: massmatrix: cube_full ................................... Passed 0.33 sec Start 117: min_quad_with_fixed: dense 110/214 Test #117: min_quad_with_fixed: dense .............................. Passed 0.22 sec Start 118: min_quad_with_fixed: Aeq 111/214 Test #118: min_quad_with_fixed: Aeq ................................ Passed 0.16 sec Start 119: moments: tet 112/214 Test #119: moments: tet ............................................ Passed 0.12 sec Start 120: orient_halfedges: sanity checks 113/214 Test #12: bbw: decimated_knight ................................... Passed 29.92 sec Start 121: igl_path_to_edges: basic_test 114/214 Test #121: igl_path_to_edges: basic_test ........................... Passed 0.34 sec Start 122: igl_path_to_edges: loop_test 115/214 Test #122: igl_path_to_edges: loop_test ............................ Passed 0.25 sec Start 123: igl_path_to_edges: vector_basic_test 116/214 Test #123: igl_path_to_edges: vector_basic_test .................... Passed 0.23 sec Start 124: igl_path_to_edges: vector_loop_test 117/214 Test #124: igl_path_to_edges: vector_loop_test ..................... Passed 0.25 sec Start 125: path_to_executable: example 118/214 Test #125: path_to_executable: example ............................. Passed 0.22 sec Start 126: pathinfo: examples 119/214 Test #126: pathinfo: examples ...................................... Passed 0.28 sec Start 127: per_face_normals: dot 120/214 Test #113: massmatrix: full ........................................ Passed 6.49 sec Start 128: polygon_corners: quads 121/214 Test #128: polygon_corners: quads .................................. Passed 0.29 sec Start 129: principal_curvature: cylinder 122/214 Test #129: principal_curvature: cylinder ........................... Passed 0.75 sec Start 130: procrustes 123/214 Test #130: procrustes .............................................. Passed 0.26 sec Start 131: qslim: cylinder 124/214 Test #114: massmatrix: barycentric ................................. Passed 6.59 sec Start 132: quadprog: box3 125/214 Test #132: quadprog: box3 .......................................... Passed 0.33 sec Start 133: quadprog: box2 126/214 Test #133: quadprog: box2 .......................................... Passed 0.29 sec Start 134: random_points_on_mesh: decimated-knight 127/214 Test #134: random_points_on_mesh: decimated-knight ................. Passed 0.41 sec Start 135: random_points_on_mesh: minstd_rand0_reproduce 128/214 Test #131: qslim: cylinder ......................................... Passed 1.98 sec Start 136: random_points_on_mesh: minstd_rand_reproduce 129/214 Test #136: random_points_on_mesh: minstd_rand_reproduce ............ Passed 0.25 sec Start 137: random_points_on_mesh: mt19937_reproduce 130/214 Test #135: random_points_on_mesh: minstd_rand0_reproduce ........... Passed 0.47 sec Start 138: random_points_on_mesh: mt19937_64_reproduce 131/214 Test #4: AABB: dynamic ........................................... Passed 35.76 sec Start 139: randperm: default_rng_reproduce_identity 132/214 Test #138: random_points_on_mesh: mt19937_64_reproduce ............. Passed 0.22 sec Start 140: randperm: minstd_rand0_reproduce_identity 133/214 Test #137: random_points_on_mesh: mt19937_reproduce ................ Passed 0.46 sec Start 141: randperm: minstd_rand_reproduce_identity 134/214 Test #139: randperm: default_rng_reproduce_identity ................ Passed 0.28 sec Start 142: randperm: mt19937_reproduce_identity 135/214 Test #140: randperm: minstd_rand0_reproduce_identity ............... Passed 0.28 sec Start 143: randperm: mt19937_64_reproduce_identity 136/214 Test #141: randperm: minstd_rand_reproduce_identity ................ Passed 0.22 sec Start 144: randperm: default_identity 137/214 Test #142: randperm: mt19937_reproduce_identity .................... Passed 0.21 sec Start 145: ray_mesh_intersect: one_triangle 138/214 Test #143: randperm: mt19937_64_reproduce_identity ................. Passed 0.30 sec Start 146: ray_mesh_intersect: corner-case 139/214 Test #145: ray_mesh_intersect: one_triangle ........................ Passed 0.23 sec Start 147: ray_mesh_intersect: corner-case2 140/214 Test #144: randperm: default_identity .............................. Passed 0.30 sec Start 148: readDMAT: Comp 141/214 Test #146: ray_mesh_intersect: corner-case ......................... Passed 0.22 sec Start 149: readMESH: single-tet 142/214 Test #147: ray_mesh_intersect: corner-case2 ........................ Passed 0.21 sec Start 150: readMESH: no-triangles-line 143/214 Test #148: readDMAT: Comp .......................................... Passed 0.25 sec Start 151: readMESH: mesh-version-formatted-2 144/214 Test #149: readMESH: single-tet .................................... Passed 0.23 sec Start 152: readMSH 145/214 Test #150: readMESH: no-triangles-line ............................. Passed 0.21 sec Start 153: readOBJ: simple 146/214 Test #153: readOBJ: simple ......................................... Passed 0.16 sec Start 154: readOBJ: Obj with material 147/214 Test #151: readMESH: mesh-version-formatted-2 ...................... Passed 0.35 sec Start 155: readOFF: simple 148/214 Test #152: readMSH ................................................. Passed 0.47 sec Start 156: readPLY: cube_with_fold.ply 149/214 Test #154: readOBJ: Obj with material .............................. Passed 0.25 sec Start 157: readPLY: bunny.ply 150/214 Test #155: readOFF: simple ......................................... Passed 0.30 sec Start 158: readPLY: mesh_error.ply 151/214 Test #156: readPLY: cube_with_fold.ply ............................. Passed 0.17 sec Start 159: readPLY: quad_cube.ply 152/214 Test #158: readPLY: mesh_error.ply ................................. Passed 0.24 sec Start 160: remesh_along_isoline: triangle_mesh 153/214 Test #159: readPLY: quad_cube.ply .................................. Passed 0.26 sec Start 161: repmat: sparse rowMajor 154/214 Test #160: remesh_along_isoline: triangle_mesh ..................... Passed 0.17 sec Start 162: repmat: sparse colMajor 155/214 Test #127: per_face_normals: dot ................................... Passed 6.25 sec Start 163: rigid_alignment: identity 156/214 Test #161: repmat: sparse rowMajor ................................. Passed 0.29 sec Start 164: seam_edges: tet 157/214 Test #162: repmat: sparse colMajor ................................. Passed 0.29 sec Start 165: segment_segment_intersect: examples 158/214 Test #163: rigid_alignment: identity ............................... Passed 0.31 sec Start 166: setdiff: matrix 159/214 Test #164: seam_edges: tet ......................................... Passed 0.19 sec Start 167: slice: eigen-simple 160/214 Test #166: setdiff: matrix ......................................... Passed 0.18 sec Start 168: slice: eigen-random 161/214 Test #165: segment_segment_intersect: examples ..................... Passed 0.30 sec Start 169: slice: dense_identity 162/214 Test #167: slice: eigen-simple ..................................... Passed 0.22 sec Start 170: slice: sparse_identity 163/214 Test #168: slice: eigen-random ..................................... Passed 0.26 sec Start 171: slice: density_reverse 164/214 Test #170: slice: sparse_identity .................................. Passed 0.20 sec Start 172: slice: random 165/214 Test #169: slice: dense_identity ................................... Passed 0.29 sec Start 173: slice_into: eigen-random 166/214 Test #120: orient_halfedges: sanity checks ......................... Passed 10.01 sec Start 174: slice_into: dense_identity 167/214 Test #171: slice: density_reverse .................................. Passed 0.22 sec Start 175: slice_into: density_reverse 168/214 Test #172: slice: random ........................................... Passed 0.21 sec Start 176: slice_into: sparse_identity 169/214 Test #173: slice_into: eigen-random ................................ Passed 0.26 sec Start 177: slice_into: every-other 170/214 Test #174: slice_into: dense_identity .............................. Passed 0.26 sec 171/214 Test #175: slice_into: density_reverse ............................. Passed 0.24 sec Start 178: slice_mask/find: random Start 179: slice_sorted: correctness 172/214 Test #176: slice_into: sparse_identity ............................. Passed 0.28 sec Start 180: SortTest: random 173/214 Test #177: slice_into: every-other ................................. Passed 0.27 sec Start 181: sparse_voxel_grid: unique 174/214 Test #180: SortTest: random ........................................ Passed 0.21 sec Start 182: split_nonmanifold: edge-fan 175/214 Test #178: slice_mask/find: random ................................. Passed 0.31 sec Start 183: split_nonmanifold: vertex-boundary 176/214 Test #181: sparse_voxel_grid: unique ............................... Passed 0.26 sec Start 184: split_nonmanifold: edge-disk-flap 177/214 Test #157: readPLY: bunny.ply ...................................... Passed 2.22 sec Start 185: split_nonmanifold: edge-disk-tent 178/214 Test #183: split_nonmanifold: vertex-boundary ...................... Passed 0.19 sec Start 186: split_nonmanifold: vertex-kiss 179/214 Test #182: split_nonmanifold: edge-fan ............................. Passed 0.25 sec Start 187: split_nonmanifold: non-orientable 180/214 Test #179: slice_sorted: correctness ............................... Passed 0.53 sec Start 188: split_nonmanifold: flap 181/214 Test #185: split_nonmanifold: edge-disk-tent ....................... Passed 0.19 sec Start 189: split_nonmanifold: crosses 182/214 Test #187: split_nonmanifold: non-orientable ....................... Passed 0.19 sec Start 190: squared_edge_lengths: cube 183/214 Test #184: split_nonmanifold: edge-disk-flap ....................... Passed 0.32 sec Start 191: super_fibonacci: simple 184/214 Test #186: split_nonmanifold: vertex-kiss .......................... Passed 0.29 sec Start 192: tet_tet_adjacency: dot 185/214 Test #188: split_nonmanifold: flap ................................. Passed 0.27 sec Start 193: tri_tri_intersection_test_3d intersect 186/214 Test #191: super_fibonacci: simple ................................. Passed 0.21 sec Start 194: tri_tri_intersection_test_3d not intersect 187/214 Test #190: squared_edge_lengths: cube .............................. Passed 0.34 sec Start 195: tri_tri_intersection_test_3d coplanar 188/214 Test #193: tri_tri_intersection_test_3d intersect .................. Passed 0.33 sec Start 196: triangle_triangle_adjacency: dot 189/214 Test #192: tet_tet_adjacency: dot .................................. Passed 0.38 sec 190/214 Test #194: tri_tri_intersection_test_3d not intersect .............. Passed 0.22 sec Start 197: triangle_triangle_intersect: shared-edge Start 198: triangulated_grid: area 191/214 Test #195: tri_tri_intersection_test_3d coplanar ................... Passed 0.26 sec Start 199: turning_number: pentagon 192/214 Test #189: split_nonmanifold: crosses .............................. Passed 0.70 sec Start 200: turning_number: heptagram 193/214 Test #198: triangulated_grid: area ................................. Passed 0.18 sec Start 201: unique: matrix 194/214 Test #197: triangle_triangle_intersect: shared-edge ................ Passed 0.25 sec Start 202: unique_rows: matrix 195/214 Test #201: unique: matrix .......................................... Passed 0.13 sec Start 203: igl_unique_simplices: duplicate_triangles 196/214 Test #199: turning_number: pentagon ................................ Passed 0.21 sec Start 204: upsample: single_triangle 197/214 Test #202: unique_rows: matrix ..................................... Passed 0.14 sec Start 205: upsample: V_comes_first_F_ordering 198/214 Test #200: turning_number: heptagram ............................... Passed 0.29 sec Start 206: voronoi_mass: equilateral-tetrahedra 199/214 Test #204: upsample: single_triangle ............................... Passed 0.17 sec Start 207: voronoi_mass: right-tetrahedra 200/214 Test #203: igl_unique_simplices: duplicate_triangles ............... Passed 0.24 sec Start 208: voronoi_mass: obtuse-tetrahedra 201/214 Test #206: voronoi_mass: equilateral-tetrahedra .................... Passed 0.20 sec Start 209: winding_number: bunny 202/214 Test #207: voronoi_mass: right-tetrahedra .......................... Passed 0.16 sec Start 210: writeMSH 203/214 Test #208: voronoi_mass: obtuse-tetrahedra ......................... Passed 0.17 sec Start 211: writeOFF: quads 204/214 Test #211: writeOFF: quads ......................................... Passed 0.13 sec Start 212: writePLY: bunny.ply 205/214 Test #106: iterative_closest_point: identity ....................... Passed 22.78 sec Start 213: writePLY: bunny.ply float 206/214 Test #210: writeMSH ................................................ Passed 1.14 sec Start 214: eigs: grid 207/214 Test #214: eigs: grid .............................................. Passed 0.91 sec 208/214 Test #212: writePLY: bunny.ply ..................................... Passed 2.85 sec 209/214 Test #213: writePLY: bunny.ply float ............................... Passed 2.53 sec 210/214 Test #196: triangle_triangle_adjacency: dot ........................ Passed 6.56 sec 211/214 Test #205: upsample: V_comes_first_F_ordering ...................... Passed 6.29 sec 212/214 Test #80: fast_winding_number: meshes ............................. Passed 63.46 sec 213/214 Test #209: winding_number: bunny ................................... Passed 31.18 sec 214/214 Test #31: cotmatrix: poly ......................................... Passed 72.03 sec 100% tests passed, 0 tests failed out of 214 Total Test time (real) = 73.01 sec ```
I'm not involved with GNUTLS though, want to share this with their team before y'all merge this.
Lots of Debian packages link against GNUTLS instead of OpenSSL for licensing reasons. (And I'm sure lots of people use GNUTLS outright, Debian is simply one major user I'm aware of).