summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-05-03 19:02:49 -0400
committerBen Gamari <ben@smart-cactus.org>2022-05-17 20:36:47 -0400
commitc84cfe202b3b148c7f94714336a0981e4c5fa1ba (patch)
tree3ec941e694131f9b8a1e288647d3bde97c2556aa
parent5fb2e316bec2be8422b3e8d47d1740a074131dde (diff)
downloadhaskell-wip/T21336.tar.gz
testsuite: Add tests for #21336wip/T21336
-rw-r--r--libraries/base/tests/IO/T21336/Makefile11
-rw-r--r--libraries/base/tests/IO/T21336/T21336a.hs11
-rw-r--r--libraries/base/tests/IO/T21336/T21336a.stderr1
-rw-r--r--libraries/base/tests/IO/T21336/T21336b.hs6
-rw-r--r--libraries/base/tests/IO/T21336/T21336b.stderr1
-rw-r--r--libraries/base/tests/IO/T21336/T21336c.hs6
-rw-r--r--libraries/base/tests/IO/T21336/all.T11
7 files changed, 47 insertions, 0 deletions
diff --git a/libraries/base/tests/IO/T21336/Makefile b/libraries/base/tests/IO/T21336/Makefile
new file mode 100644
index 0000000000..44dd5d5fc3
--- /dev/null
+++ b/libraries/base/tests/IO/T21336/Makefile
@@ -0,0 +1,11 @@
+TOP=../../../testsuite
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/test.mk
+
+T21336b :
+ $(TEST_HC) $(TEST_HC_OPTS) -v0 T21336b.hs
+ ./T21336b >/dev/full
+
+T21336c :
+ $(TEST_HC) $(TEST_HC_OPTS) -v0 T21336c.hs
+ ./T21336c 2>/dev/full >/dev/full
diff --git a/libraries/base/tests/IO/T21336/T21336a.hs b/libraries/base/tests/IO/T21336/T21336a.hs
new file mode 100644
index 0000000000..91c852ce92
--- /dev/null
+++ b/libraries/base/tests/IO/T21336/T21336a.hs
@@ -0,0 +1,11 @@
+import GHC.Weak
+import System.IO
+import System.Mem
+
+main :: IO ()
+main = do
+ f <- openFile "/dev/full" WriteMode
+ hPutStr f "hello"
+ -- Ensure that the Handle's finalizer is run
+ performMajorGC
+
diff --git a/libraries/base/tests/IO/T21336/T21336a.stderr b/libraries/base/tests/IO/T21336/T21336a.stderr
new file mode 100644
index 0000000000..059b0e2473
--- /dev/null
+++ b/libraries/base/tests/IO/T21336/T21336a.stderr
@@ -0,0 +1 @@
+Exception during Weak# finalization (ignored): GHC.IO.FD.fdWrite: resource exhausted (No space left on device)
diff --git a/libraries/base/tests/IO/T21336/T21336b.hs b/libraries/base/tests/IO/T21336/T21336b.hs
new file mode 100644
index 0000000000..a8f0329dd0
--- /dev/null
+++ b/libraries/base/tests/IO/T21336/T21336b.hs
@@ -0,0 +1,6 @@
+import GHC.Weak
+import System.IO
+
+main :: IO ()
+main = hPutStr stdout "hello"
+
diff --git a/libraries/base/tests/IO/T21336/T21336b.stderr b/libraries/base/tests/IO/T21336/T21336b.stderr
new file mode 100644
index 0000000000..66a347472a
--- /dev/null
+++ b/libraries/base/tests/IO/T21336/T21336b.stderr
@@ -0,0 +1 @@
+Exception during Weak# finalization (ignored): <stdout>: hFlush: resource exhausted (No space left on device)
diff --git a/libraries/base/tests/IO/T21336/T21336c.hs b/libraries/base/tests/IO/T21336/T21336c.hs
new file mode 100644
index 0000000000..a8f0329dd0
--- /dev/null
+++ b/libraries/base/tests/IO/T21336/T21336c.hs
@@ -0,0 +1,6 @@
+import GHC.Weak
+import System.IO
+
+main :: IO ()
+main = hPutStr stdout "hello"
+
diff --git a/libraries/base/tests/IO/T21336/all.T b/libraries/base/tests/IO/T21336/all.T
new file mode 100644
index 0000000000..39ccb04d6a
--- /dev/null
+++ b/libraries/base/tests/IO/T21336/all.T
@@ -0,0 +1,11 @@
+# N.B. /dev/full exists on Darwin but cannot be opened, failing with -EPERM
+test('T21336a',
+ [unless(opsys('linux') or opsys('freebsd'), skip)],
+ compile_and_run, [''])
+test('T21336b',
+ [unless(opsys('linux') or opsys('freebsd'), skip)],
+ makefile_test, [])
+test('T21336c',
+ [unless(opsys('linux') or opsys('freebsd'), skip)],
+ makefile_test, [])
+