summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-05-03 19:02:49 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-05-19 04:57:51 -0400
commit3dd2f944428596227590f5f15d3a47c0de1cc5c3 (patch)
tree2accdbd69f4c88bbdd0c76bafe48edd44371150a
parent372cf7305157df7bbe41d2d1f45211d9b999ff52 (diff)
downloadhaskell-3dd2f944428596227590f5f15d3a47c0de1cc5c3.tar.gz
testsuite: Add tests for #21336
-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, [])
+