# 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
536
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
