From c84cfe202b3b148c7f94714336a0981e4c5fa1ba Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Tue, 3 May 2022 19:02:49 -0400 Subject: testsuite: Add tests for #21336 --- libraries/base/tests/IO/T21336/Makefile | 11 +++++++++++ libraries/base/tests/IO/T21336/T21336a.hs | 11 +++++++++++ libraries/base/tests/IO/T21336/T21336a.stderr | 1 + libraries/base/tests/IO/T21336/T21336b.hs | 6 ++++++ libraries/base/tests/IO/T21336/T21336b.stderr | 1 + libraries/base/tests/IO/T21336/T21336c.hs | 6 ++++++ libraries/base/tests/IO/T21336/all.T | 11 +++++++++++ 7 files changed, 47 insertions(+) create mode 100644 libraries/base/tests/IO/T21336/Makefile create mode 100644 libraries/base/tests/IO/T21336/T21336a.hs create mode 100644 libraries/base/tests/IO/T21336/T21336a.stderr create mode 100644 libraries/base/tests/IO/T21336/T21336b.hs create mode 100644 libraries/base/tests/IO/T21336/T21336b.stderr create mode 100644 libraries/base/tests/IO/T21336/T21336c.hs create mode 100644 libraries/base/tests/IO/T21336/all.T 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): : 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, []) + -- cgit v1.2.1