# This file can be used to specify test cases that should not run when all
# test cases are run by runtests.pl. Just add the plain test case numbers, one
# per line.
# Lines starting with '#' letters are treated as comments.
594
1209
1211
1316
1512
836
882
938
# test 1801 causes problems on Mac OS X and github
# https://github.com/curl/curl/issues/380
1801
# test 1510 causes problems on the CI on github
# example: https://travis-ci.org/curl/curl/builds/81633600
1510
# Pipelining test that is causing false positives a little too often
1903
# fnmatch differences are just too common to make testing them sensible
1307
# Pipelining is deprecated
530
584
1900
1901
1902
2033
# Uses SRP to "a server not supporting it" but modern stunnel versions
# will silently accept it and remain happy
323
