Bitcode: Add a more comprehensive multi-module test now that we have both llvm-cat...
authorPeter Collingbourne <peter@pcc.me.uk>
Tue, 29 Nov 2016 21:55:09 +0000 (21:55 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Tue, 29 Nov 2016 21:55:09 +0000 (21:55 +0000)
Differential Revision: https://reviews.llvm.org/D27189

llvm-svn: 288202

llvm/test/Bitcode/multi-module.ll

index a6c25c7..5f73240 100644 (file)
@@ -2,10 +2,11 @@
 ; RUN: not llvm-dis -o - %t 2>&1 | FileCheck --check-prefix=ERROR %s
 ; ERROR: Expected a single module
 
-; FIXME: Introduce a tool for extracting modules from bitcode and use it here.
-; For now we can at least check that the bitcode contains multiple modules.
 ; RUN: llvm-bcanalyzer -dump %t | FileCheck --check-prefix=BCA %s
 
+; RUN: llvm-modextract -n 0 -o - %t | llvm-dis | FileCheck --check-prefix=IR1 %s
+; RUN: llvm-modextract -n 1 -o - %t | llvm-dis | FileCheck --check-prefix=IR2 %s
+
 ; RUN: llvm-as -o %t1 %s
 ; RUN: llvm-as -o %t2 %S/Inputs/multi-module.ll
 ; RUN: llvm-cat -o %t %t1 %t2
 ; RUN: not llvm-dis -o - %t 2>&1 | FileCheck --check-prefix=ERROR %s
 ; RUN: llvm-bcanalyzer -dump %t | FileCheck --check-prefix=BCA %s
 
+; RUN: llvm-modextract -n 0 -o - %t | llvm-dis | FileCheck --check-prefix=IR1 %s
+; RUN: llvm-modextract -n 1 -o - %t | llvm-dis | FileCheck --check-prefix=IR2 %s
+
 ; RUN: llvm-cat -b -o %t3 %t %t
 ; RUN: not llvm-dis -o - %t3 2>&1 | FileCheck --check-prefix=ERROR %s
 ; RUN: llvm-bcanalyzer -dump %t3 | FileCheck --check-prefix=BCA4 %s
 
+; RUN: llvm-modextract -n 0 -o - %t3 | llvm-dis | FileCheck --check-prefix=IR1 %s
+; RUN: llvm-modextract -n 1 -o - %t3 | llvm-dis | FileCheck --check-prefix=IR2 %s
+; RUN: llvm-modextract -n 2 -o - %t3 | llvm-dis | FileCheck --check-prefix=IR1 %s
+; RUN: llvm-modextract -n 3 -o - %t3 | llvm-dis | FileCheck --check-prefix=IR2 %s
+
 ; BCA: <IDENTIFICATION_BLOCK
 ; BCA: <MODULE_BLOCK
 ; BCA: <IDENTIFICATION_BLOCK
@@ -34,6 +43,9 @@
 ; BCA4: <IDENTIFICATION_BLOCK
 ; BCA4: <MODULE_BLOCK
 
+; IR1: define void @f1()
+; IR2: define void @f2()
+
 define void @f1() {
   ret void
 }