// RUN: %empty-directory(%t)

// This test has two purposes. This first block just tests that we serialize
// the -enable-testing flag correctly...

// RUN: %target-swift-frontend -emit-module -DBASE -o %t %s
// RUN: llvm-bcanalyzer -dump %t/testability.swiftmodule > %t/testability.dump.txt
// RUN: %FileCheck -check-prefix=CHECK -check-prefix=NO-TESTING %s < %t/testability.dump.txt

// RUN: %target-swift-frontend -emit-module -DBASE -o %t -enable-testing %s
// RUN: llvm-bcanalyzer -dump %t/testability.swiftmodule > %t/testability2.dump.txt
// RUN: %FileCheck -check-prefix=CHECK -check-prefix=TESTING %s < %t/testability2.dump.txt
// RUN: %FileCheck -check-prefix=NEGATIVE %s < %t/testability2.dump.txt

// ...but the second block checks that a module that /depends/ on a testable
// module can still be loaded. This is what happens when debugging a unit test.

// RUN: %target-swift-frontend -emit-module -DSUB -o %t -enable-testing %s -module-name testability_client -I %t
// RUN: %target-swift-frontend -emit-sil -DMAIN %s -module-name main -I %t > /dev/null
// RUN: %target-swift-frontend -emit-sil -DMAIN -DTESTABLE %s -module-name main -I %t > /dev/null
// RUN: %target-swift-frontend -emit-sil -DMAIN -DDEBUG -disable-access-control %s -module-name main -I %t > /dev/null

// Then we do it one more time with resilience enabled.

// RUN: %target-swift-frontend -emit-module -DSUB -o %t -enable-testing -enable-resilience %s -module-name testability_client -I %t
// RUN: %target-swift-frontend -emit-sil -DMAIN %s -module-name main -I %t > /dev/null
// RUN: %target-swift-frontend -emit-sil -DMAIN -DTESTABLE %s -module-name main -I %t > /dev/null
// RUN: %target-swift-frontend -emit-sil -DMAIN -DDEBUG -disable-access-control %s -module-name main -I %t > /dev/null

// CHECK: <MODULE_BLOCK {{.*}}>
// TESTING: <IS_TESTABLE abbrevid={{[0-9]+}}/>
// NO-TESTING-NOT: IS_TESTABLE
// CHECK: </MODULE_BLOCK>
// CHECK-NOT: <MODULE_BLOCK {{.*}}>

// NEGATIVE-NOT: UnknownCode

#if BASE

  internal class Base {}

#elseif SUB

  @testable import testability

  class Sub : Base {}
  
  public func unrelated() {}

#elseif MAIN

  #if TESTABLE
    @testable import testability_client
  #else 
    import testability_client
  #endif

  #if TESTABLE || DEBUG
    let x: Sub?
  #endif

  unrelated()

#else

  let _: INVALID_TESTING_MODE

#endif
