// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t -stats 2>%t.out
// RUN: FileCheck --input-file=%t.out %s

// Test that we create no fixups for this file since "a" and "b" are in the
// same fragment.

// CHECK:      assembler - Number of emitted object file bytes
// CHECK-NEXT: assembler - Number of fragment layouts

a:
  nop
b:
  .long b - a

// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t
// RUN: llvm-objdump -r %t | FileCheck %s

// Test that we create no fixups for this file since "a" and "b"
// are in the same fragment. If b was in a different section, a
// fixup causing a relocation would be generated in the object file.

// CHECK-NOT: RELOCATION RECORDS

a:
  nop
b:
  .long b - a

Rewrite a test to check actual output rather than intermediate implementation detail.
Rewrite a test to check actual output rather than intermediate implementation
detail.

The was this test was written, it was relying on an implementation detail
(fixups) and hence was very brittle (relying, among other things, on the
exact ordering of statistics printed by MC).

The test was rewritten to check a more observable output difference. While it
doesn't cover 100% of the things the original test covered, it's a good
practice to write regression tests this way. If we want to check that
internal details and invariants hold, such tests should be expressed as unit
tests.





git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@176377 91177308-0d34-0410-b5e6-96231b3b80d8
