blob: a42de9cedc52574939b50e06db4d7b7183f5c95a [file] [log] [blame]
// Test the diagnostic messages of -verify with multiple prefixes.
// - Expected but not seen errors should contain the prefix of the directive
// - Seen but not expected errors should not choose an arbitrary prefix
// - "expected directive cannot follow '<prefix>-no-diagnostics'" should report an actual
// expected-no-diagnostics prefix present in the source.
// RUN: not %clang_cc1 -verify=foo,bar %s 2>&1 | FileCheck %s --check-prefix=CHECK1
// RUN: not %clang_cc1 -verify=bar,foo %s 2>&1 | FileCheck %s --check-prefix=CHECK1
undefined_type x; // #1
// foo-error{{there is no error here}}
// bar-error{{error not seen}}
// bar-note{{declared here}}
// bar-error{{another error not seen}}
// bar-error-re{{regex error{{}} not present}}
// CHECK1: error: diagnostics with 'error' severity expected but not seen:
// CHECK1: Line 12 'foo-error': there is no error here
// CHECK1: Line 13 'bar-error': error not seen
// CHECK1: Line 15 'bar-error': another error not seen
// CHECK1: Line 16 'bar-error-re': regex error{{{{[}][}]}} not present
// CHECK1: error: diagnostics with 'error' severity seen but not expected:
// CHECK1: Line 10: unknown type name 'undefined_type'
// CHECK1: error: diagnostics with 'note' severity expected but not seen:
// CHECK1: Line 14 'bar-note': declared here
// CHECK1: 6 errors generated.
// RUN: not %clang_cc1 -verify=baz,qux,quux %s 2>&1 | FileCheck %s --check-prefix=CHECK2
// qux-no-diagnostics
// baz-error@#1{{unknown type name 'undefined_type'}}
// quux-no-diagnostics
// qux-error-re@#1{{unknown type name 'undefined_type'}}
// CHECK2: error: diagnostics with 'error' severity seen but not expected:
// CHECK2: Line 10: unknown type name 'undefined_type'
// CHECK2: Line 32: 'baz-error' directive cannot follow 'qux-no-diagnostics' directive
// CHECK2: Line 34: 'qux-error-re' directive cannot follow 'qux-no-diagnostics' directive
// RUN: not %clang_cc1 -verify=spam,eggs %s 2>&1 | FileCheck %s --check-prefix=CHECK3
// eggs-error@#1{{unknown type name 'undefined_type'}}
// spam-no-diagnostics
// CHECK3: error: diagnostics with 'error' severity seen but not expected:
// CHECK3: Line 44: 'spam-no-diagnostics' directive cannot follow other expected directives
// CHECK3: 1 error generated.