summaryrefslogtreecommitdiff
path: root/testsuite/tests/driver/T20030
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/driver/T20030')
-rw-r--r--testsuite/tests/driver/T20030/test1/A.hs3
-rw-r--r--testsuite/tests/driver/T20030/test1/A.hs-boot2
-rw-r--r--testsuite/tests/driver/T20030/test1/B.hs2
-rw-r--r--testsuite/tests/driver/T20030/test1/C.hs2
-rw-r--r--testsuite/tests/driver/T20030/test1/C.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test1/D.hs2
-rw-r--r--testsuite/tests/driver/T20030/test1/E.hs2
-rw-r--r--testsuite/tests/driver/T20030/test1/E.hs-boot2
-rw-r--r--testsuite/tests/driver/T20030/test1/F.hs2
-rw-r--r--testsuite/tests/driver/T20030/test1/G.hs2
-rw-r--r--testsuite/tests/driver/T20030/test1/H.hs2
-rw-r--r--testsuite/tests/driver/T20030/test1/I.hs2
-rw-r--r--testsuite/tests/driver/T20030/test1/J.hs1
-rw-r--r--testsuite/tests/driver/T20030/test1/J.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test1/K.hs2
-rw-r--r--testsuite/tests/driver/T20030/test1/T20030_test1.stderr13
-rw-r--r--testsuite/tests/driver/T20030/test1/all.T6
-rw-r--r--testsuite/tests/driver/T20030/test2/L.hs3
-rw-r--r--testsuite/tests/driver/T20030/test2/L.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test2/M.hs2
-rw-r--r--testsuite/tests/driver/T20030/test2/M.hs-boot2
-rw-r--r--testsuite/tests/driver/T20030/test2/O.hs3
-rw-r--r--testsuite/tests/driver/T20030/test2/O.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test2/T20030_test2.stderr6
-rw-r--r--testsuite/tests/driver/T20030/test2/all.T4
-rw-r--r--testsuite/tests/driver/T20030/test3/L.hs4
-rw-r--r--testsuite/tests/driver/T20030/test3/L.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test3/M.hs2
-rw-r--r--testsuite/tests/driver/T20030/test3/M.hs-boot2
-rw-r--r--testsuite/tests/driver/T20030/test3/N.hs3
-rw-r--r--testsuite/tests/driver/T20030/test3/N.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test3/O.hs3
-rw-r--r--testsuite/tests/driver/T20030/test3/O.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test3/T20030_test3.stderr7
-rw-r--r--testsuite/tests/driver/T20030/test3/all.T4
-rw-r--r--testsuite/tests/driver/T20030/test4/L1.hs4
-rw-r--r--testsuite/tests/driver/T20030/test4/L1.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test4/L1_1.hs2
-rw-r--r--testsuite/tests/driver/T20030/test4/L2.hs3
-rw-r--r--testsuite/tests/driver/T20030/test4/L2.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test4/L2_1.hs2
-rw-r--r--testsuite/tests/driver/T20030/test4/M.hs3
-rw-r--r--testsuite/tests/driver/T20030/test4/T20030_test4.stderr10
-rw-r--r--testsuite/tests/driver/T20030/test4/UOL1.hs4
-rw-r--r--testsuite/tests/driver/T20030/test4/UOL1_2.hs4
-rw-r--r--testsuite/tests/driver/T20030/test4/UOL2.hs4
-rw-r--r--testsuite/tests/driver/T20030/test4/all.T6
-rw-r--r--testsuite/tests/driver/T20030/test5/L1.hs4
-rw-r--r--testsuite/tests/driver/T20030/test5/L1.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test5/L1_1.hs2
-rw-r--r--testsuite/tests/driver/T20030/test5/L2.hs3
-rw-r--r--testsuite/tests/driver/T20030/test5/L2.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test5/L2_1.hs2
-rw-r--r--testsuite/tests/driver/T20030/test5/T20030_test5.stderr9
-rw-r--r--testsuite/tests/driver/T20030/test5/UOL1.hs3
-rw-r--r--testsuite/tests/driver/T20030/test5/UOL1_2.hs4
-rw-r--r--testsuite/tests/driver/T20030/test5/UOL2.hs3
-rw-r--r--testsuite/tests/driver/T20030/test5/all.T6
-rw-r--r--testsuite/tests/driver/T20030/test6/L1.hs3
-rw-r--r--testsuite/tests/driver/T20030/test6/L1.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test6/L1_1.hs2
-rw-r--r--testsuite/tests/driver/T20030/test6/L1_2.hs3
-rw-r--r--testsuite/tests/driver/T20030/test6/L2.hs2
-rw-r--r--testsuite/tests/driver/T20030/test6/L2.hs-boot1
-rw-r--r--testsuite/tests/driver/T20030/test6/L2_1.hs2
-rw-r--r--testsuite/tests/driver/T20030/test6/L2_2.hs3
-rw-r--r--testsuite/tests/driver/T20030/test6/T20030_test6.stderr12
-rw-r--r--testsuite/tests/driver/T20030/test6/UOL1.hs3
-rw-r--r--testsuite/tests/driver/T20030/test6/UOL1_1.hs3
-rw-r--r--testsuite/tests/driver/T20030/test6/UOL1_2.hs4
-rw-r--r--testsuite/tests/driver/T20030/test6/UOL2.hs3
-rw-r--r--testsuite/tests/driver/T20030/test6/all.T6
72 files changed, 227 insertions, 0 deletions
diff --git a/testsuite/tests/driver/T20030/test1/A.hs b/testsuite/tests/driver/T20030/test1/A.hs
new file mode 100644
index 0000000000..0939b424b6
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/A.hs
@@ -0,0 +1,3 @@
+module A where
+import B
+import {-# SOURCE #-} C
diff --git a/testsuite/tests/driver/T20030/test1/A.hs-boot b/testsuite/tests/driver/T20030/test1/A.hs-boot
new file mode 100644
index 0000000000..7a3fe29d8e
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/A.hs-boot
@@ -0,0 +1,2 @@
+module A where
+
diff --git a/testsuite/tests/driver/T20030/test1/B.hs b/testsuite/tests/driver/T20030/test1/B.hs
new file mode 100644
index 0000000000..f547edd059
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/B.hs
@@ -0,0 +1,2 @@
+module B where
+import {-# SOURCE #-} A
diff --git a/testsuite/tests/driver/T20030/test1/C.hs b/testsuite/tests/driver/T20030/test1/C.hs
new file mode 100644
index 0000000000..e1ec081d7d
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/C.hs
@@ -0,0 +1,2 @@
+module C where
+import A
diff --git a/testsuite/tests/driver/T20030/test1/C.hs-boot b/testsuite/tests/driver/T20030/test1/C.hs-boot
new file mode 100644
index 0000000000..5831959653
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/C.hs-boot
@@ -0,0 +1 @@
+module C where
diff --git a/testsuite/tests/driver/T20030/test1/D.hs b/testsuite/tests/driver/T20030/test1/D.hs
new file mode 100644
index 0000000000..2a69831ec3
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/D.hs
@@ -0,0 +1,2 @@
+module D where
+import {-# SOURCE #-} A
diff --git a/testsuite/tests/driver/T20030/test1/E.hs b/testsuite/tests/driver/T20030/test1/E.hs
new file mode 100644
index 0000000000..0861ef3a17
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/E.hs
@@ -0,0 +1,2 @@
+module E where
+import H
diff --git a/testsuite/tests/driver/T20030/test1/E.hs-boot b/testsuite/tests/driver/T20030/test1/E.hs-boot
new file mode 100644
index 0000000000..b5e8daaa2e
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/E.hs-boot
@@ -0,0 +1,2 @@
+module E where
+import B
diff --git a/testsuite/tests/driver/T20030/test1/F.hs b/testsuite/tests/driver/T20030/test1/F.hs
new file mode 100644
index 0000000000..6fd57e32e1
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/F.hs
@@ -0,0 +1,2 @@
+module F where
+import A
diff --git a/testsuite/tests/driver/T20030/test1/G.hs b/testsuite/tests/driver/T20030/test1/G.hs
new file mode 100644
index 0000000000..7287622ff1
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/G.hs
@@ -0,0 +1,2 @@
+module G where
+import {-# SOURCE #-} E
diff --git a/testsuite/tests/driver/T20030/test1/H.hs b/testsuite/tests/driver/T20030/test1/H.hs
new file mode 100644
index 0000000000..26a5e7d9ec
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/H.hs
@@ -0,0 +1,2 @@
+module H where
+import G
diff --git a/testsuite/tests/driver/T20030/test1/I.hs b/testsuite/tests/driver/T20030/test1/I.hs
new file mode 100644
index 0000000000..c99f7b4a79
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/I.hs
@@ -0,0 +1,2 @@
+module I where
+import G
diff --git a/testsuite/tests/driver/T20030/test1/J.hs b/testsuite/tests/driver/T20030/test1/J.hs
new file mode 100644
index 0000000000..4d669568c9
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/J.hs
@@ -0,0 +1 @@
+module J where
diff --git a/testsuite/tests/driver/T20030/test1/J.hs-boot b/testsuite/tests/driver/T20030/test1/J.hs-boot
new file mode 100644
index 0000000000..4d669568c9
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/J.hs-boot
@@ -0,0 +1 @@
+module J where
diff --git a/testsuite/tests/driver/T20030/test1/K.hs b/testsuite/tests/driver/T20030/test1/K.hs
new file mode 100644
index 0000000000..ac0b673e12
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/K.hs
@@ -0,0 +1,2 @@
+module K where
+import {-# SOURCE #-} J
diff --git a/testsuite/tests/driver/T20030/test1/T20030_test1.stderr b/testsuite/tests/driver/T20030/test1/T20030_test1.stderr
new file mode 100644
index 0000000000..81b29def80
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/T20030_test1.stderr
@@ -0,0 +1,13 @@
+[ 1 of 13] Compiling A[boot] ( A.hs-boot, A.o-boot )
+[ 2 of 13] Compiling B ( B.hs, B.o )
+[ 3 of 13] Compiling C[boot] ( C.hs-boot, C.o-boot )
+[ 4 of 13] Compiling A ( A.hs, A.o )
+[ 5 of 13] Compiling C ( C.hs, C.o )
+[ 6 of 13] Compiling E[boot] ( E.hs-boot, E.o-boot )
+[ 7 of 13] Compiling G ( G.hs, G.o )
+[ 8 of 13] Compiling H ( H.hs, H.o )
+[ 9 of 13] Compiling E ( E.hs, E.o )
+[10 of 13] Compiling I ( I.hs, I.o )
+[11 of 13] Compiling J[boot] ( J.hs-boot, J.o-boot )
+[12 of 13] Compiling K ( K.hs, K.o )
+[13 of 13] Compiling J ( J.hs, J.o )
diff --git a/testsuite/tests/driver/T20030/test1/all.T b/testsuite/tests/driver/T20030/test1/all.T
new file mode 100644
index 0000000000..43aa5f424c
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test1/all.T
@@ -0,0 +1,6 @@
+test('T20030_test1',
+ [ extra_files([ 'A.hs-boot' , 'A.hs' , 'B.hs' , 'C.hs-boot' , 'C.hs'
+ , 'D.hs' , 'E.hs-boot' , 'E.hs' , 'F.hs' , 'G.hs' , 'H.hs'
+ , 'I.hs', 'J.hs-boot', 'J.hs', 'K.hs' ])
+ ],
+ multimod_compile, ['I.hs K.hs', '-v1'])
diff --git a/testsuite/tests/driver/T20030/test2/L.hs b/testsuite/tests/driver/T20030/test2/L.hs
new file mode 100644
index 0000000000..30a8919778
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test2/L.hs
@@ -0,0 +1,3 @@
+module L where
+import {-# SOURCE #-} M
+import {-# SOURCE #-} O
diff --git a/testsuite/tests/driver/T20030/test2/L.hs-boot b/testsuite/tests/driver/T20030/test2/L.hs-boot
new file mode 100644
index 0000000000..cae1f2e2c5
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test2/L.hs-boot
@@ -0,0 +1 @@
+module L where
diff --git a/testsuite/tests/driver/T20030/test2/M.hs b/testsuite/tests/driver/T20030/test2/M.hs
new file mode 100644
index 0000000000..d2236c1ecd
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test2/M.hs
@@ -0,0 +1,2 @@
+module M where
+import L
diff --git a/testsuite/tests/driver/T20030/test2/M.hs-boot b/testsuite/tests/driver/T20030/test2/M.hs-boot
new file mode 100644
index 0000000000..de9a6f0784
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test2/M.hs-boot
@@ -0,0 +1,2 @@
+module M where
+import {-# SOURCE #-} L
diff --git a/testsuite/tests/driver/T20030/test2/O.hs b/testsuite/tests/driver/T20030/test2/O.hs
new file mode 100644
index 0000000000..429e1ac50b
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test2/O.hs
@@ -0,0 +1,3 @@
+module O where
+import {-# SOURCE #-} L
+import {-# SOURCE #-} M
diff --git a/testsuite/tests/driver/T20030/test2/O.hs-boot b/testsuite/tests/driver/T20030/test2/O.hs-boot
new file mode 100644
index 0000000000..230b9e3014
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test2/O.hs-boot
@@ -0,0 +1 @@
+module O where
diff --git a/testsuite/tests/driver/T20030/test2/T20030_test2.stderr b/testsuite/tests/driver/T20030/test2/T20030_test2.stderr
new file mode 100644
index 0000000000..1597ec42a5
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test2/T20030_test2.stderr
@@ -0,0 +1,6 @@
+[1 of 6] Compiling L[boot] ( L.hs-boot, L.o-boot )
+[2 of 6] Compiling M[boot] ( M.hs-boot, M.o-boot )
+[3 of 6] Compiling O[boot] ( O.hs-boot, O.o-boot )
+[4 of 6] Compiling O ( O.hs, O.o )
+[5 of 6] Compiling L ( L.hs, L.o )
+[6 of 6] Compiling M ( M.hs, M.o )
diff --git a/testsuite/tests/driver/T20030/test2/all.T b/testsuite/tests/driver/T20030/test2/all.T
new file mode 100644
index 0000000000..7b0ae0ec4d
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test2/all.T
@@ -0,0 +1,4 @@
+test('T20030_test2',
+ [ extra_files([ 'L.hs', 'L.hs-boot', 'M.hs', 'M.hs-boot', 'O.hs', 'O.hs-boot' ])
+ ],
+ multimod_compile, ['O.hs', '-v1'])
diff --git a/testsuite/tests/driver/T20030/test3/L.hs b/testsuite/tests/driver/T20030/test3/L.hs
new file mode 100644
index 0000000000..2188d6e9d4
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/L.hs
@@ -0,0 +1,4 @@
+module L where
+import {-# SOURCE #-} M
+import {-# SOURCE #-} O
+-- import N
diff --git a/testsuite/tests/driver/T20030/test3/L.hs-boot b/testsuite/tests/driver/T20030/test3/L.hs-boot
new file mode 100644
index 0000000000..cae1f2e2c5
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/L.hs-boot
@@ -0,0 +1 @@
+module L where
diff --git a/testsuite/tests/driver/T20030/test3/M.hs b/testsuite/tests/driver/T20030/test3/M.hs
new file mode 100644
index 0000000000..d2236c1ecd
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/M.hs
@@ -0,0 +1,2 @@
+module M where
+import L
diff --git a/testsuite/tests/driver/T20030/test3/M.hs-boot b/testsuite/tests/driver/T20030/test3/M.hs-boot
new file mode 100644
index 0000000000..de9a6f0784
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/M.hs-boot
@@ -0,0 +1,2 @@
+module M where
+import {-# SOURCE #-} L
diff --git a/testsuite/tests/driver/T20030/test3/N.hs b/testsuite/tests/driver/T20030/test3/N.hs
new file mode 100644
index 0000000000..3fe640c1e6
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/N.hs
@@ -0,0 +1,3 @@
+module N where
+-- import {-# SOURCE #-} M
+import O
diff --git a/testsuite/tests/driver/T20030/test3/N.hs-boot b/testsuite/tests/driver/T20030/test3/N.hs-boot
new file mode 100644
index 0000000000..197e2eea70
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/N.hs-boot
@@ -0,0 +1 @@
+module N where
diff --git a/testsuite/tests/driver/T20030/test3/O.hs b/testsuite/tests/driver/T20030/test3/O.hs
new file mode 100644
index 0000000000..429e1ac50b
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/O.hs
@@ -0,0 +1,3 @@
+module O where
+import {-# SOURCE #-} L
+import {-# SOURCE #-} M
diff --git a/testsuite/tests/driver/T20030/test3/O.hs-boot b/testsuite/tests/driver/T20030/test3/O.hs-boot
new file mode 100644
index 0000000000..230b9e3014
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/O.hs-boot
@@ -0,0 +1 @@
+module O where
diff --git a/testsuite/tests/driver/T20030/test3/T20030_test3.stderr b/testsuite/tests/driver/T20030/test3/T20030_test3.stderr
new file mode 100644
index 0000000000..91c3869e70
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/T20030_test3.stderr
@@ -0,0 +1,7 @@
+[1 of 7] Compiling L[boot] ( L.hs-boot, L.o-boot )
+[2 of 7] Compiling M[boot] ( M.hs-boot, M.o-boot )
+[3 of 7] Compiling O[boot] ( O.hs-boot, O.o-boot )
+[4 of 7] Compiling O ( O.hs, O.o )
+[5 of 7] Compiling L ( L.hs, L.o )
+[6 of 7] Compiling M ( M.hs, M.o )
+[7 of 7] Compiling N ( N.hs, N.o )
diff --git a/testsuite/tests/driver/T20030/test3/all.T b/testsuite/tests/driver/T20030/test3/all.T
new file mode 100644
index 0000000000..7cbb410a3d
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test3/all.T
@@ -0,0 +1,4 @@
+test('T20030_test3',
+ [ extra_files([ 'L.hs', 'L.hs-boot', 'M.hs', 'M.hs-boot', 'N.hs', 'N.hs-boot', 'O.hs', 'O.hs-boot' ])
+ ],
+ multimod_compile, ['O.hs N.hs', '-v1'])
diff --git a/testsuite/tests/driver/T20030/test4/L1.hs b/testsuite/tests/driver/T20030/test4/L1.hs
new file mode 100644
index 0000000000..bbf0f06b62
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/L1.hs
@@ -0,0 +1,4 @@
+module L1 where
+
+import L1_1
+import L2_1
diff --git a/testsuite/tests/driver/T20030/test4/L1.hs-boot b/testsuite/tests/driver/T20030/test4/L1.hs-boot
new file mode 100644
index 0000000000..8a9eaee92d
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/L1.hs-boot
@@ -0,0 +1 @@
+module L1 where
diff --git a/testsuite/tests/driver/T20030/test4/L1_1.hs b/testsuite/tests/driver/T20030/test4/L1_1.hs
new file mode 100644
index 0000000000..ac31c988ee
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/L1_1.hs
@@ -0,0 +1,2 @@
+module L1_1 where
+import {-# SOURCE #-} L1
diff --git a/testsuite/tests/driver/T20030/test4/L2.hs b/testsuite/tests/driver/T20030/test4/L2.hs
new file mode 100644
index 0000000000..46ac69643a
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/L2.hs
@@ -0,0 +1,3 @@
+module L2 where
+import L2_1
+import M
diff --git a/testsuite/tests/driver/T20030/test4/L2.hs-boot b/testsuite/tests/driver/T20030/test4/L2.hs-boot
new file mode 100644
index 0000000000..160fae71ae
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/L2.hs-boot
@@ -0,0 +1 @@
+module L2 where
diff --git a/testsuite/tests/driver/T20030/test4/L2_1.hs b/testsuite/tests/driver/T20030/test4/L2_1.hs
new file mode 100644
index 0000000000..95875e7382
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/L2_1.hs
@@ -0,0 +1,2 @@
+module L2_1 where
+import {-# SOURCE #-} L2
diff --git a/testsuite/tests/driver/T20030/test4/M.hs b/testsuite/tests/driver/T20030/test4/M.hs
new file mode 100644
index 0000000000..480b67011a
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/M.hs
@@ -0,0 +1,3 @@
+module M where
+
+import L1_1
diff --git a/testsuite/tests/driver/T20030/test4/T20030_test4.stderr b/testsuite/tests/driver/T20030/test4/T20030_test4.stderr
new file mode 100644
index 0000000000..a477847202
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/T20030_test4.stderr
@@ -0,0 +1,10 @@
+[ 1 of 10] Compiling L2[boot] ( L2.hs-boot, L2.o-boot )
+[ 2 of 10] Compiling L2_1 ( L2_1.hs, L2_1.o )
+[ 3 of 10] Compiling L1[boot] ( L1.hs-boot, L1.o-boot )
+[ 4 of 10] Compiling L1_1 ( L1_1.hs, L1_1.o )
+[ 5 of 10] Compiling M ( M.hs, M.o )
+[ 6 of 10] Compiling L2 ( L2.hs, L2.o )
+[ 7 of 10] Compiling L1 ( L1.hs, L1.o )
+[ 8 of 10] Compiling UOL1 ( UOL1.hs, UOL1.o )
+[ 9 of 10] Compiling UOL1_2 ( UOL1_2.hs, UOL1_2.o )
+[10 of 10] Compiling UOL2 ( UOL2.hs, UOL2.o )
diff --git a/testsuite/tests/driver/T20030/test4/UOL1.hs b/testsuite/tests/driver/T20030/test4/UOL1.hs
new file mode 100644
index 0000000000..41ca42ef9a
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/UOL1.hs
@@ -0,0 +1,4 @@
+module UOL1 where
+
+import L1
+import M
diff --git a/testsuite/tests/driver/T20030/test4/UOL1_2.hs b/testsuite/tests/driver/T20030/test4/UOL1_2.hs
new file mode 100644
index 0000000000..246a9b76e0
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/UOL1_2.hs
@@ -0,0 +1,4 @@
+module UOL1_2 where
+
+import L1
+import L2
diff --git a/testsuite/tests/driver/T20030/test4/UOL2.hs b/testsuite/tests/driver/T20030/test4/UOL2.hs
new file mode 100644
index 0000000000..eb747ad8e8
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/UOL2.hs
@@ -0,0 +1,4 @@
+module UOL2 where
+
+import L2
+import M
diff --git a/testsuite/tests/driver/T20030/test4/all.T b/testsuite/tests/driver/T20030/test4/all.T
new file mode 100644
index 0000000000..96d83bbd94
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test4/all.T
@@ -0,0 +1,6 @@
+test('T20030_test4',
+ [ extra_files([ 'L1_1.hs', 'L1.hs', 'L1.hs-boot', 'L2_1.hs', 'L2.hs',
+ 'L2.hs-boot', 'M.hs', 'UOL1_2.hs', 'UOL1.hs', 'UOL2.hs' ])
+ ],
+ multimod_compile, ['UOL1_2.hs UOL1.hs UOL2.hs', '-v1'])
+
diff --git a/testsuite/tests/driver/T20030/test5/L1.hs b/testsuite/tests/driver/T20030/test5/L1.hs
new file mode 100644
index 0000000000..bbf0f06b62
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/L1.hs
@@ -0,0 +1,4 @@
+module L1 where
+
+import L1_1
+import L2_1
diff --git a/testsuite/tests/driver/T20030/test5/L1.hs-boot b/testsuite/tests/driver/T20030/test5/L1.hs-boot
new file mode 100644
index 0000000000..8a9eaee92d
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/L1.hs-boot
@@ -0,0 +1 @@
+module L1 where
diff --git a/testsuite/tests/driver/T20030/test5/L1_1.hs b/testsuite/tests/driver/T20030/test5/L1_1.hs
new file mode 100644
index 0000000000..ac31c988ee
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/L1_1.hs
@@ -0,0 +1,2 @@
+module L1_1 where
+import {-# SOURCE #-} L1
diff --git a/testsuite/tests/driver/T20030/test5/L2.hs b/testsuite/tests/driver/T20030/test5/L2.hs
new file mode 100644
index 0000000000..fc703e5c85
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/L2.hs
@@ -0,0 +1,3 @@
+module L2 where
+import L2_1
+import L1_1
diff --git a/testsuite/tests/driver/T20030/test5/L2.hs-boot b/testsuite/tests/driver/T20030/test5/L2.hs-boot
new file mode 100644
index 0000000000..160fae71ae
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/L2.hs-boot
@@ -0,0 +1 @@
+module L2 where
diff --git a/testsuite/tests/driver/T20030/test5/L2_1.hs b/testsuite/tests/driver/T20030/test5/L2_1.hs
new file mode 100644
index 0000000000..95875e7382
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/L2_1.hs
@@ -0,0 +1,2 @@
+module L2_1 where
+import {-# SOURCE #-} L2
diff --git a/testsuite/tests/driver/T20030/test5/T20030_test5.stderr b/testsuite/tests/driver/T20030/test5/T20030_test5.stderr
new file mode 100644
index 0000000000..89cdd8afb4
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/T20030_test5.stderr
@@ -0,0 +1,9 @@
+[1 of 9] Compiling L1[boot] ( L1.hs-boot, L1.o-boot )
+[2 of 9] Compiling L1_1 ( L1_1.hs, L1_1.o )
+[3 of 9] Compiling L2[boot] ( L2.hs-boot, L2.o-boot )
+[4 of 9] Compiling L2_1 ( L2_1.hs, L2_1.o )
+[5 of 9] Compiling L1 ( L1.hs, L1.o )
+[6 of 9] Compiling L2 ( L2.hs, L2.o )
+[7 of 9] Compiling UOL1 ( UOL1.hs, UOL1.o )
+[8 of 9] Compiling UOL1_2 ( UOL1_2.hs, UOL1_2.o )
+[9 of 9] Compiling UOL2 ( UOL2.hs, UOL2.o )
diff --git a/testsuite/tests/driver/T20030/test5/UOL1.hs b/testsuite/tests/driver/T20030/test5/UOL1.hs
new file mode 100644
index 0000000000..e9a1d9ccce
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/UOL1.hs
@@ -0,0 +1,3 @@
+module UOL1 where
+
+import L1
diff --git a/testsuite/tests/driver/T20030/test5/UOL1_2.hs b/testsuite/tests/driver/T20030/test5/UOL1_2.hs
new file mode 100644
index 0000000000..246a9b76e0
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/UOL1_2.hs
@@ -0,0 +1,4 @@
+module UOL1_2 where
+
+import L1
+import L2
diff --git a/testsuite/tests/driver/T20030/test5/UOL2.hs b/testsuite/tests/driver/T20030/test5/UOL2.hs
new file mode 100644
index 0000000000..139961ae50
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/UOL2.hs
@@ -0,0 +1,3 @@
+module UOL2 where
+
+import L2
diff --git a/testsuite/tests/driver/T20030/test5/all.T b/testsuite/tests/driver/T20030/test5/all.T
new file mode 100644
index 0000000000..98aa41366d
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test5/all.T
@@ -0,0 +1,6 @@
+test('T20030_test5',
+ [ extra_files([ 'L1_1.hs', 'L1.hs', 'L1.hs-boot', 'L2_1.hs', 'L2.hs',
+ 'L2.hs-boot', 'UOL1_2.hs', 'UOL1.hs', 'UOL2.hs' ])
+ ],
+ multimod_compile, ['UOL1_2.hs UOL1.hs UOL2.hs', '-v1'])
+
diff --git a/testsuite/tests/driver/T20030/test6/L1.hs b/testsuite/tests/driver/T20030/test6/L1.hs
new file mode 100644
index 0000000000..8fa4b8a839
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/L1.hs
@@ -0,0 +1,3 @@
+module L1 where
+
+import L1_2
diff --git a/testsuite/tests/driver/T20030/test6/L1.hs-boot b/testsuite/tests/driver/T20030/test6/L1.hs-boot
new file mode 100644
index 0000000000..8a9eaee92d
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/L1.hs-boot
@@ -0,0 +1 @@
+module L1 where
diff --git a/testsuite/tests/driver/T20030/test6/L1_1.hs b/testsuite/tests/driver/T20030/test6/L1_1.hs
new file mode 100644
index 0000000000..ac31c988ee
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/L1_1.hs
@@ -0,0 +1,2 @@
+module L1_1 where
+import {-# SOURCE #-} L1
diff --git a/testsuite/tests/driver/T20030/test6/L1_2.hs b/testsuite/tests/driver/T20030/test6/L1_2.hs
new file mode 100644
index 0000000000..ed17d62900
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/L1_2.hs
@@ -0,0 +1,3 @@
+module L1_2 where
+import L1_1
+import L2_1
diff --git a/testsuite/tests/driver/T20030/test6/L2.hs b/testsuite/tests/driver/T20030/test6/L2.hs
new file mode 100644
index 0000000000..49eae64d9b
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/L2.hs
@@ -0,0 +1,2 @@
+module L2 where
+import L2_2
diff --git a/testsuite/tests/driver/T20030/test6/L2.hs-boot b/testsuite/tests/driver/T20030/test6/L2.hs-boot
new file mode 100644
index 0000000000..160fae71ae
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/L2.hs-boot
@@ -0,0 +1 @@
+module L2 where
diff --git a/testsuite/tests/driver/T20030/test6/L2_1.hs b/testsuite/tests/driver/T20030/test6/L2_1.hs
new file mode 100644
index 0000000000..95875e7382
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/L2_1.hs
@@ -0,0 +1,2 @@
+module L2_1 where
+import {-# SOURCE #-} L2
diff --git a/testsuite/tests/driver/T20030/test6/L2_2.hs b/testsuite/tests/driver/T20030/test6/L2_2.hs
new file mode 100644
index 0000000000..f88c5c3dee
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/L2_2.hs
@@ -0,0 +1,3 @@
+module L2_2 where
+import L2_1
+import L1_1
diff --git a/testsuite/tests/driver/T20030/test6/T20030_test6.stderr b/testsuite/tests/driver/T20030/test6/T20030_test6.stderr
new file mode 100644
index 0000000000..bb1f53dc67
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/T20030_test6.stderr
@@ -0,0 +1,12 @@
+[ 1 of 12] Compiling L1[boot] ( L1.hs-boot, L1.o-boot )
+[ 2 of 12] Compiling L1_1 ( L1_1.hs, L1_1.o )
+[ 3 of 12] Compiling L2[boot] ( L2.hs-boot, L2.o-boot )
+[ 4 of 12] Compiling L2_1 ( L2_1.hs, L2_1.o )
+[ 5 of 12] Compiling L2_2 ( L2_2.hs, L2_2.o )
+[ 6 of 12] Compiling L1_2 ( L1_2.hs, L1_2.o )
+[ 7 of 12] Compiling L1 ( L1.hs, L1.o )
+[ 8 of 12] Compiling L2 ( L2.hs, L2.o )
+[ 9 of 12] Compiling UOL1 ( UOL1.hs, UOL1.o )
+[10 of 12] Compiling UOL1_1 ( UOL1_1.hs, UOL1_1.o )
+[11 of 12] Compiling UOL1_2 ( UOL1_2.hs, UOL1_2.o )
+[12 of 12] Compiling UOL2 ( UOL2.hs, UOL2.o )
diff --git a/testsuite/tests/driver/T20030/test6/UOL1.hs b/testsuite/tests/driver/T20030/test6/UOL1.hs
new file mode 100644
index 0000000000..e9a1d9ccce
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/UOL1.hs
@@ -0,0 +1,3 @@
+module UOL1 where
+
+import L1
diff --git a/testsuite/tests/driver/T20030/test6/UOL1_1.hs b/testsuite/tests/driver/T20030/test6/UOL1_1.hs
new file mode 100644
index 0000000000..684b0f5e71
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/UOL1_1.hs
@@ -0,0 +1,3 @@
+module UOL1_1 where
+
+import L1_2
diff --git a/testsuite/tests/driver/T20030/test6/UOL1_2.hs b/testsuite/tests/driver/T20030/test6/UOL1_2.hs
new file mode 100644
index 0000000000..246a9b76e0
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/UOL1_2.hs
@@ -0,0 +1,4 @@
+module UOL1_2 where
+
+import L1
+import L2
diff --git a/testsuite/tests/driver/T20030/test6/UOL2.hs b/testsuite/tests/driver/T20030/test6/UOL2.hs
new file mode 100644
index 0000000000..139961ae50
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/UOL2.hs
@@ -0,0 +1,3 @@
+module UOL2 where
+
+import L2
diff --git a/testsuite/tests/driver/T20030/test6/all.T b/testsuite/tests/driver/T20030/test6/all.T
new file mode 100644
index 0000000000..a1df9d9b0a
--- /dev/null
+++ b/testsuite/tests/driver/T20030/test6/all.T
@@ -0,0 +1,6 @@
+test('T20030_test6',
+ [ extra_files([ 'L1_1.hs', 'L1_2.hs', 'L1.hs', 'L1.hs-boot', 'L2_1.hs', 'L2_2.hs', 'L2.hs',
+ 'L2.hs-boot', 'UOL1_2.hs', 'UOL1.hs', 'UOL1_1.hs', 'UOL2.hs' ])
+ ],
+ multimod_compile, ['UOL1_1.hs UOL1_2.hs UOL1.hs UOL2.hs', '-v1'])
+