Proposal for an ABI testsuite for clang

Sean Silva wrote:

Ø Roughly what I’m saying is instead of “check(…, expected)” instead do “print(…)”. Then compare what is printed with the output produced by the program when compiled with the reference toolchain. This approach seems more useful…

Good point. In fact the tests do have a verbose mode where they print one-line-per-check, even when they pass, giving details including the line number in the test. That can be saved as the ‘golden master’ to compare against future compilers, or possibly even to modify the test to pass on your compiler. This does not work in every case, but we plan to improve that.

Ø Suppose that to extend the test suite to MS ABI…

I wouldn’t be that ambitious. The checking code relies on the basic concepts like IA64 vtbls and VTTs. As they exist now, most tests will probably fail to link with MSVC, or crash badly. It will be significant amount of work to extend this to MS ABI.

David Majnemer wrote:

Ø I do hope that the intent is not to ensure that clang has bug-for-bug compatibility with earlier versions. We’ve fixed many bugs over time which would necessitate ABI breaks from earlier versions of clang.

We do not presume to impose any such restriction on future changes, even though many compiler vendors maintain such bug-to-bug compatibility. If clang undergoes an ABI breaking change, the tests will have to change. We have tackled similar changes already internally.

Nico Weber wrote:

Ø 1.) How much of your 400 test files is from the manual abi method, how much from your test case generator?

About 20% are hand written

Ø 2.) Test runtime probably scales fairly well with the number of cores, right? You say it takes one hour to run on one core, so an 8-core system should take less than 10 minutes?

Yes. It scales very well. Memory or disk contention may make it less than linear, but still very well.

Ø 3.) How many bugs did you find with this so far?

I believe there were, but I can’t give a number since I was not directly involved in reporting them. Perhaps Paul Robinson or Katya can answer that.

Sunil Srivastava

SN Systems / Sony Computer Entertainment

Sunil Srivastava wrote:

Nico Weber wrote:
> 3.) How many bugs did you find with this so far?
I believe there were, but I can't give a number since I was not directly
involved in reporting them. Perhaps Paul Robinson or Katya can answer that.

A somewhat naïve search of our internal bugzillas shows that we filed
PR18430 (fixed in r200359); fixes without PRs include r201288 and r206439.
The suite also noticed when some lambda name mangling changes occurred,
which were improvements in spec compliance, so we didn't file bugs for
those (although it took us a little while to decide that the changes were
harmless for our compliance-with-previous-releases requirement).
There may be more that I'm not finding.
--paulr