Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
GHC
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
4,321
Issues
4,321
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
359
Merge Requests
359
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
25017dbb
Commit
25017dbb
authored
Mar 09, 2012
by
pcapriotti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move base and unix tests to respective packages; part of
#1161
.
parent
253d34d2
Changes
299
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
299 changed files
with
0 additions
and
9683 deletions
+0
-9683
testsuite/tests/lib/Concurrent/4876.hs
testsuite/tests/lib/Concurrent/4876.hs
+0
-19
testsuite/tests/lib/Concurrent/4876.stdout
testsuite/tests/lib/Concurrent/4876.stdout
+0
-1
testsuite/tests/lib/Concurrent/Chan001.hs
testsuite/tests/lib/Concurrent/Chan001.hs
+0
-109
testsuite/tests/lib/Concurrent/Chan001.stdout
testsuite/tests/lib/Concurrent/Chan001.stdout
+0
-3
testsuite/tests/lib/Concurrent/MVar001.hs
testsuite/tests/lib/Concurrent/MVar001.hs
+0
-148
testsuite/tests/lib/Concurrent/MVar001.stdout
testsuite/tests/lib/Concurrent/MVar001.stdout
+0
-6
testsuite/tests/lib/Concurrent/Makefile
testsuite/tests/lib/Concurrent/Makefile
+0
-3
testsuite/tests/lib/Concurrent/QSem001.hs
testsuite/tests/lib/Concurrent/QSem001.hs
+0
-93
testsuite/tests/lib/Concurrent/QSem001.stdout
testsuite/tests/lib/Concurrent/QSem001.stdout
+0
-2
testsuite/tests/lib/Concurrent/QSemN001.hs
testsuite/tests/lib/Concurrent/QSemN001.hs
+0
-96
testsuite/tests/lib/Concurrent/QSemN001.stdout
testsuite/tests/lib/Concurrent/QSemN001.stdout
+0
-2
testsuite/tests/lib/Concurrent/SampleVar001.hs
testsuite/tests/lib/Concurrent/SampleVar001.hs
+0
-132
testsuite/tests/lib/Concurrent/SampleVar001.stdout
testsuite/tests/lib/Concurrent/SampleVar001.stdout
+0
-6
testsuite/tests/lib/Concurrent/ThreadDelay001.hs
testsuite/tests/lib/Concurrent/ThreadDelay001.hs
+0
-26
testsuite/tests/lib/Concurrent/all.T
testsuite/tests/lib/Concurrent/all.T
+0
-10
testsuite/tests/lib/IO/2122.hs
testsuite/tests/lib/IO/2122.hs
+0
-76
testsuite/tests/lib/IO/3307.hs
testsuite/tests/lib/IO/3307.hs
+0
-52
testsuite/tests/lib/IO/3307.stdout
testsuite/tests/lib/IO/3307.stdout
+0
-12
testsuite/tests/lib/IO/4808.hs
testsuite/tests/lib/IO/4808.hs
+0
-13
testsuite/tests/lib/IO/4808.stderr
testsuite/tests/lib/IO/4808.stderr
+0
-1
testsuite/tests/lib/IO/4808.stdout
testsuite/tests/lib/IO/4808.stdout
+0
-1
testsuite/tests/lib/IO/4855.hs
testsuite/tests/lib/IO/4855.hs
+0
-3
testsuite/tests/lib/IO/4855.stderr
testsuite/tests/lib/IO/4855.stderr
+0
-1
testsuite/tests/lib/IO/4895.hs
testsuite/tests/lib/IO/4895.hs
+0
-9
testsuite/tests/lib/IO/4895.stdout
testsuite/tests/lib/IO/4895.stdout
+0
-1
testsuite/tests/lib/IO/IOError001.hs
testsuite/tests/lib/IO/IOError001.hs
+0
-7
testsuite/tests/lib/IO/IOError001.stdout
testsuite/tests/lib/IO/IOError001.stdout
+0
-2
testsuite/tests/lib/IO/IOError001.stdout-hugs
testsuite/tests/lib/IO/IOError001.stdout-hugs
+0
-2
testsuite/tests/lib/IO/IOError002.hs
testsuite/tests/lib/IO/IOError002.hs
+0
-5
testsuite/tests/lib/IO/IOError002.stdout
testsuite/tests/lib/IO/IOError002.stdout
+0
-1
testsuite/tests/lib/IO/Makefile
testsuite/tests/lib/IO/Makefile
+0
-48
testsuite/tests/lib/IO/T4144.hs
testsuite/tests/lib/IO/T4144.hs
+0
-115
testsuite/tests/lib/IO/T4144.stdout
testsuite/tests/lib/IO/T4144.stdout
+0
-1
testsuite/tests/lib/IO/all.T
testsuite/tests/lib/IO/all.T
+0
-161
testsuite/tests/lib/IO/concio001.hs
testsuite/tests/lib/IO/concio001.hs
+0
-6
testsuite/tests/lib/IO/concio001.stdout
testsuite/tests/lib/IO/concio001.stdout
+0
-2
testsuite/tests/lib/IO/concio001.thr.stdout
testsuite/tests/lib/IO/concio001.thr.stdout
+0
-2
testsuite/tests/lib/IO/concio002.hs
testsuite/tests/lib/IO/concio002.hs
+0
-14
testsuite/tests/lib/IO/concio002.stdout
testsuite/tests/lib/IO/concio002.stdout
+0
-4
testsuite/tests/lib/IO/countReaders001.hs
testsuite/tests/lib/IO/countReaders001.hs
+0
-17
testsuite/tests/lib/IO/countReaders001.stdout
testsuite/tests/lib/IO/countReaders001.stdout
+0
-1
testsuite/tests/lib/IO/countReaders001.stdout-i386-unknown-mingw32
.../tests/lib/IO/countReaders001.stdout-i386-unknown-mingw32
+0
-1
testsuite/tests/lib/IO/decodingerror001.hs
testsuite/tests/lib/IO/decodingerror001.hs
+0
-22
testsuite/tests/lib/IO/decodingerror001.in1
testsuite/tests/lib/IO/decodingerror001.in1
+0
-1
testsuite/tests/lib/IO/decodingerror001.in2
testsuite/tests/lib/IO/decodingerror001.in2
+0
-1
testsuite/tests/lib/IO/decodingerror001.stdout
testsuite/tests/lib/IO/decodingerror001.stdout
+0
-10
testsuite/tests/lib/IO/decodingerror002.hs
testsuite/tests/lib/IO/decodingerror002.hs
+0
-23
testsuite/tests/lib/IO/decodingerror002.in
testsuite/tests/lib/IO/decodingerror002.in
+0
-1
testsuite/tests/lib/IO/decodingerror002.stdout
testsuite/tests/lib/IO/decodingerror002.stdout
+0
-4
testsuite/tests/lib/IO/encoding001.hs
testsuite/tests/lib/IO/encoding001.hs
+0
-71
testsuite/tests/lib/IO/encoding002.hs
testsuite/tests/lib/IO/encoding002.hs
+0
-67
testsuite/tests/lib/IO/encoding002.stdout
testsuite/tests/lib/IO/encoding002.stdout
+0
-61
testsuite/tests/lib/IO/encodingerror001.hs
testsuite/tests/lib/IO/encodingerror001.hs
+0
-27
testsuite/tests/lib/IO/encodingerror001.stdout
testsuite/tests/lib/IO/encodingerror001.stdout
+0
-36
testsuite/tests/lib/IO/environment001.hs
testsuite/tests/lib/IO/environment001.hs
+0
-16
testsuite/tests/lib/IO/environment001.stdout
testsuite/tests/lib/IO/environment001.stdout
+0
-6
testsuite/tests/lib/IO/finalization001.hs
testsuite/tests/lib/IO/finalization001.hs
+0
-26
testsuite/tests/lib/IO/finalization001.stdout
testsuite/tests/lib/IO/finalization001.stdout
+0
-200
testsuite/tests/lib/IO/hClose001.hs
testsuite/tests/lib/IO/hClose001.hs
+0
-8
testsuite/tests/lib/IO/hClose001.stdout
testsuite/tests/lib/IO/hClose001.stdout
+0
-1
testsuite/tests/lib/IO/hClose002.hs
testsuite/tests/lib/IO/hClose002.hs
+0
-32
testsuite/tests/lib/IO/hClose002.stdout
testsuite/tests/lib/IO/hClose002.stdout
+0
-4
testsuite/tests/lib/IO/hClose002.stdout-i386-unknown-solaris2
...suite/tests/lib/IO/hClose002.stdout-i386-unknown-solaris2
+0
-4
testsuite/tests/lib/IO/hClose003.hs
testsuite/tests/lib/IO/hClose003.hs
+0
-42
testsuite/tests/lib/IO/hClose003.stdout
testsuite/tests/lib/IO/hClose003.stdout
+0
-4
testsuite/tests/lib/IO/hDuplicateTo001.hs
testsuite/tests/lib/IO/hDuplicateTo001.hs
+0
-24
testsuite/tests/lib/IO/hDuplicateTo001.stderr
testsuite/tests/lib/IO/hDuplicateTo001.stderr
+0
-2
testsuite/tests/lib/IO/hFileSize001.hs
testsuite/tests/lib/IO/hFileSize001.hs
+0
-8
testsuite/tests/lib/IO/hFileSize001.stdout
testsuite/tests/lib/IO/hFileSize001.stdout
+0
-1
testsuite/tests/lib/IO/hFileSize001.stdout-mingw
testsuite/tests/lib/IO/hFileSize001.stdout-mingw
+0
-1
testsuite/tests/lib/IO/hFileSize002.hs
testsuite/tests/lib/IO/hFileSize002.hs
+0
-35
testsuite/tests/lib/IO/hFileSize002.stdout
testsuite/tests/lib/IO/hFileSize002.stdout
+0
-5
testsuite/tests/lib/IO/hFlush001.hs
testsuite/tests/lib/IO/hFlush001.hs
+0
-31
testsuite/tests/lib/IO/hFlush001.stdout
testsuite/tests/lib/IO/hFlush001.stdout
+0
-2
testsuite/tests/lib/IO/hGetBuf001.hs
testsuite/tests/lib/IO/hGetBuf001.hs
+0
-218
testsuite/tests/lib/IO/hGetBuf001.stdout
testsuite/tests/lib/IO/hGetBuf001.stdout
+0
-117
testsuite/tests/lib/IO/hGetBuffering001.hs
testsuite/tests/lib/IO/hGetBuffering001.hs
+0
-21
testsuite/tests/lib/IO/hGetBuffering001.stdout
testsuite/tests/lib/IO/hGetBuffering001.stdout
+0
-7
testsuite/tests/lib/IO/hGetChar001.hs
testsuite/tests/lib/IO/hGetChar001.hs
+0
-18
testsuite/tests/lib/IO/hGetChar001.stdin
testsuite/tests/lib/IO/hGetChar001.stdin
+0
-2
testsuite/tests/lib/IO/hGetChar001.stdout
testsuite/tests/lib/IO/hGetChar001.stdout
+0
-1
testsuite/tests/lib/IO/hGetLine001.hs
testsuite/tests/lib/IO/hGetLine001.hs
+0
-25
testsuite/tests/lib/IO/hGetLine001.stdout
testsuite/tests/lib/IO/hGetLine001.stdout
+0
-100
testsuite/tests/lib/IO/hGetLine002.hs
testsuite/tests/lib/IO/hGetLine002.hs
+0
-16
testsuite/tests/lib/IO/hGetLine002.stdin
testsuite/tests/lib/IO/hGetLine002.stdin
+0
-1
testsuite/tests/lib/IO/hGetLine002.stdout
testsuite/tests/lib/IO/hGetLine002.stdout
+0
-2
testsuite/tests/lib/IO/hGetLine002.stdout-hugs
testsuite/tests/lib/IO/hGetLine002.stdout-hugs
+0
-2
testsuite/tests/lib/IO/hGetLine003.hs
testsuite/tests/lib/IO/hGetLine003.hs
+0
-9
testsuite/tests/lib/IO/hGetLine003.stdin
testsuite/tests/lib/IO/hGetLine003.stdin
+0
-1
testsuite/tests/lib/IO/hGetLine003.stdout
testsuite/tests/lib/IO/hGetLine003.stdout
+0
-2
testsuite/tests/lib/IO/hGetPosn001.hs
testsuite/tests/lib/IO/hGetPosn001.hs
+0
-28
testsuite/tests/lib/IO/hGetPosn001.in
testsuite/tests/lib/IO/hGetPosn001.in
+0
-2
testsuite/tests/lib/IO/hGetPosn001.stdout
testsuite/tests/lib/IO/hGetPosn001.stdout
+0
-5
testsuite/tests/lib/IO/hGetPosn001.stdout-hugs
testsuite/tests/lib/IO/hGetPosn001.stdout-hugs
+0
-5
testsuite/tests/lib/IO/hIsEOF001.hs
testsuite/tests/lib/IO/hIsEOF001.hs
+0
-7
testsuite/tests/lib/IO/hIsEOF001.stdout
testsuite/tests/lib/IO/hIsEOF001.stdout
+0
-2
testsuite/tests/lib/IO/hIsEOF002.hs
testsuite/tests/lib/IO/hIsEOF002.hs
+0
-48
testsuite/tests/lib/IO/hIsEOF002.stdout
testsuite/tests/lib/IO/hIsEOF002.stdout
+0
-16
testsuite/tests/lib/IO/hReady001.hs
testsuite/tests/lib/IO/hReady001.hs
+0
-11
testsuite/tests/lib/IO/hReady001.stdout
testsuite/tests/lib/IO/hReady001.stdout
+0
-2
testsuite/tests/lib/IO/hReady002.hs
testsuite/tests/lib/IO/hReady002.hs
+0
-10
testsuite/tests/lib/IO/hReady002.stdout
testsuite/tests/lib/IO/hReady002.stdout
+0
-1
testsuite/tests/lib/IO/hSeek001.hs
testsuite/tests/lib/IO/hSeek001.hs
+0
-30
testsuite/tests/lib/IO/hSeek001.in
testsuite/tests/lib/IO/hSeek001.in
+0
-1
testsuite/tests/lib/IO/hSeek001.stdout
testsuite/tests/lib/IO/hSeek001.stdout
+0
-7
testsuite/tests/lib/IO/hSeek002.hs
testsuite/tests/lib/IO/hSeek002.hs
+0
-25
testsuite/tests/lib/IO/hSeek002.stdout
testsuite/tests/lib/IO/hSeek002.stdout
+0
-5
testsuite/tests/lib/IO/hSeek003.hs
testsuite/tests/lib/IO/hSeek003.hs
+0
-51
testsuite/tests/lib/IO/hSeek003.stdout
testsuite/tests/lib/IO/hSeek003.stdout
+0
-24
testsuite/tests/lib/IO/hSeek004.hs
testsuite/tests/lib/IO/hSeek004.hs
+0
-8
testsuite/tests/lib/IO/hSeek004.stdout
testsuite/tests/lib/IO/hSeek004.stdout
+0
-1
testsuite/tests/lib/IO/hSeek004.stdout-mingw
testsuite/tests/lib/IO/hSeek004.stdout-mingw
+0
-5
testsuite/tests/lib/IO/hSetBuffering002.hs
testsuite/tests/lib/IO/hSetBuffering002.hs
+0
-6
testsuite/tests/lib/IO/hSetBuffering002.stdout
testsuite/tests/lib/IO/hSetBuffering002.stdout
+0
-6
testsuite/tests/lib/IO/hSetBuffering003.hs
testsuite/tests/lib/IO/hSetBuffering003.hs
+0
-79
testsuite/tests/lib/IO/hSetBuffering003.stderr
testsuite/tests/lib/IO/hSetBuffering003.stderr
+0
-1
testsuite/tests/lib/IO/hSetBuffering003.stdout
testsuite/tests/lib/IO/hSetBuffering003.stdout
+0
-22
testsuite/tests/lib/IO/hSetBuffering004.hs
testsuite/tests/lib/IO/hSetBuffering004.hs
+0
-9
testsuite/tests/lib/IO/hSetBuffering004.stdout
testsuite/tests/lib/IO/hSetBuffering004.stdout
+0
-1
testsuite/tests/lib/IO/hSetEncoding001.hs
testsuite/tests/lib/IO/hSetEncoding001.hs
+0
-49
testsuite/tests/lib/IO/hSetEncoding001.in
testsuite/tests/lib/IO/hSetEncoding001.in
+0
-0
testsuite/tests/lib/IO/hSetEncoding001.stdout
testsuite/tests/lib/IO/hSetEncoding001.stdout
+0
-90
testsuite/tests/lib/IO/hSetEncoding002.hs
testsuite/tests/lib/IO/hSetEncoding002.hs
+0
-13
testsuite/tests/lib/IO/hSetEncoding002.stdout
testsuite/tests/lib/IO/hSetEncoding002.stdout
+0
-1
testsuite/tests/lib/IO/ioeGetErrorString001.hs
testsuite/tests/lib/IO/ioeGetErrorString001.hs
+0
-13
testsuite/tests/lib/IO/ioeGetErrorString001.stdout
testsuite/tests/lib/IO/ioeGetErrorString001.stdout
+0
-1
testsuite/tests/lib/IO/ioeGetFileName001.hs
testsuite/tests/lib/IO/ioeGetFileName001.hs
+0
-12
testsuite/tests/lib/IO/ioeGetFileName001.stdout
testsuite/tests/lib/IO/ioeGetFileName001.stdout
+0
-1
testsuite/tests/lib/IO/ioeGetHandle001.hs
testsuite/tests/lib/IO/ioeGetHandle001.hs
+0
-13
testsuite/tests/lib/IO/ioeGetHandle001.stdout
testsuite/tests/lib/IO/ioeGetHandle001.stdout
+0
-1
testsuite/tests/lib/IO/isEOF001.hs
testsuite/tests/lib/IO/isEOF001.hs
+0
-3
testsuite/tests/lib/IO/isEOF001.stdout
testsuite/tests/lib/IO/isEOF001.stdout
+0
-1
testsuite/tests/lib/IO/latin1
testsuite/tests/lib/IO/latin1
+0
-5
testsuite/tests/lib/IO/misc001.hs
testsuite/tests/lib/IO/misc001.hs
+0
-24
testsuite/tests/lib/IO/misc001.stdout
testsuite/tests/lib/IO/misc001.stdout
+0
-0
testsuite/tests/lib/IO/newline001.hs
testsuite/tests/lib/IO/newline001.hs
+0
-121
testsuite/tests/lib/IO/openFile001.hs
testsuite/tests/lib/IO/openFile001.hs
+0
-11
testsuite/tests/lib/IO/openFile001.stdout
testsuite/tests/lib/IO/openFile001.stdout
+0
-1
testsuite/tests/lib/IO/openFile002.hs
testsuite/tests/lib/IO/openFile002.hs
+0
-6
testsuite/tests/lib/IO/openFile002.stderr
testsuite/tests/lib/IO/openFile002.stderr
+0
-1
testsuite/tests/lib/IO/openFile002.stderr-hugs
testsuite/tests/lib/IO/openFile002.stderr-hugs
+0
-1
testsuite/tests/lib/IO/openFile003.hs
testsuite/tests/lib/IO/openFile003.hs
+0
-17
testsuite/tests/lib/IO/openFile003.stdout
testsuite/tests/lib/IO/openFile003.stdout
+0
-4
testsuite/tests/lib/IO/openFile003.stdout-i386-unknown-mingw32
...uite/tests/lib/IO/openFile003.stdout-i386-unknown-mingw32
+0
-4
testsuite/tests/lib/IO/openFile003.stdout-i386-unknown-solaris2
...ite/tests/lib/IO/openFile003.stdout-i386-unknown-solaris2
+0
-4
testsuite/tests/lib/IO/openFile003.stdout-mingw
testsuite/tests/lib/IO/openFile003.stdout-mingw
+0
-16
testsuite/tests/lib/IO/openFile003.stdout-mips-sgi-irix
testsuite/tests/lib/IO/openFile003.stdout-mips-sgi-irix
+0
-4
testsuite/tests/lib/IO/openFile003.stdout-sparc-sun-solaris2
testsuite/tests/lib/IO/openFile003.stdout-sparc-sun-solaris2
+0
-4
testsuite/tests/lib/IO/openFile004.hs
testsuite/tests/lib/IO/openFile004.hs
+0
-23
testsuite/tests/lib/IO/openFile004.stdout
testsuite/tests/lib/IO/openFile004.stdout
+0
-1
testsuite/tests/lib/IO/openFile005.hs
testsuite/tests/lib/IO/openFile005.hs
+0
-45
testsuite/tests/lib/IO/openFile005.stdout
testsuite/tests/lib/IO/openFile005.stdout
+0
-12
testsuite/tests/lib/IO/openFile005.stdout-i386-unknown-mingw32
...uite/tests/lib/IO/openFile005.stdout-i386-unknown-mingw32
+0
-12
testsuite/tests/lib/IO/openFile006.hs
testsuite/tests/lib/IO/openFile006.hs
+0
-14
testsuite/tests/lib/IO/openFile006.stdout
testsuite/tests/lib/IO/openFile006.stdout
+0
-2
testsuite/tests/lib/IO/openFile007.hs
testsuite/tests/lib/IO/openFile007.hs
+0
-18
testsuite/tests/lib/IO/openFile007.stdout
testsuite/tests/lib/IO/openFile007.stdout
+0
-2
testsuite/tests/lib/IO/openFile007.stdout-i386-unknown-mingw32
...uite/tests/lib/IO/openFile007.stdout-i386-unknown-mingw32
+0
-2
testsuite/tests/lib/IO/openFile008.hs
testsuite/tests/lib/IO/openFile008.hs
+0
-22
testsuite/tests/lib/IO/openTempFile001.hs
testsuite/tests/lib/IO/openTempFile001.hs
+0
-13
testsuite/tests/lib/IO/putStr001.hs
testsuite/tests/lib/IO/putStr001.hs
+0
-6
testsuite/tests/lib/IO/putStr001.stdout
testsuite/tests/lib/IO/putStr001.stdout
+0
-1
testsuite/tests/lib/IO/readFile001.hs
testsuite/tests/lib/IO/readFile001.hs
+0
-26
testsuite/tests/lib/IO/readFile001.stdout
testsuite/tests/lib/IO/readFile001.stdout
+0
-30
testsuite/tests/lib/IO/readFile001.stdout-i386-unknown-mingw32
...uite/tests/lib/IO/readFile001.stdout-i386-unknown-mingw32
+0
-30
testsuite/tests/lib/IO/readwrite001.hs
testsuite/tests/lib/IO/readwrite001.hs
+0
-23
testsuite/tests/lib/IO/readwrite001.stdout
testsuite/tests/lib/IO/readwrite001.stdout
+0
-3
testsuite/tests/lib/IO/readwrite002.hs
testsuite/tests/lib/IO/readwrite002.hs
+0
-49
testsuite/tests/lib/IO/readwrite002.stdout
testsuite/tests/lib/IO/readwrite002.stdout
+0
-9
testsuite/tests/lib/IO/readwrite003.hs
testsuite/tests/lib/IO/readwrite003.hs
+0
-12
testsuite/tests/lib/IO/readwrite003.stdout
testsuite/tests/lib/IO/readwrite003.stdout
+0
-4
testsuite/tests/lib/IO/utf8-test
testsuite/tests/lib/IO/utf8-test
+0
-3
testsuite/tests/lib/IOExts/Makefile
testsuite/tests/lib/IOExts/Makefile
+0
-3
testsuite/tests/lib/IOExts/all.T
testsuite/tests/lib/IOExts/all.T
+0
-15
testsuite/tests/lib/IOExts/echo001.hs
testsuite/tests/lib/IOExts/echo001.hs
+0
-13
testsuite/tests/lib/IOExts/echo001.stdout
testsuite/tests/lib/IOExts/echo001.stdout
+0
-14
testsuite/tests/lib/IOExts/hGetBuf002.hs
testsuite/tests/lib/IOExts/hGetBuf002.hs
+0
-22
testsuite/tests/lib/IOExts/hGetBuf002.stdout
testsuite/tests/lib/IOExts/hGetBuf002.stdout
+0
-44
testsuite/tests/lib/IOExts/hGetBuf003.hs
testsuite/tests/lib/IOExts/hGetBuf003.hs
+0
-26
testsuite/tests/lib/IOExts/hGetBuf003.stdout
testsuite/tests/lib/IOExts/hGetBuf003.stdout
+0
-52
testsuite/tests/lib/IOExts/hPutBuf001.hs
testsuite/tests/lib/IOExts/hPutBuf001.hs
+0
-7
testsuite/tests/lib/IOExts/hPutBuf001.stdout
testsuite/tests/lib/IOExts/hPutBuf001.stdout
+0
-1
testsuite/tests/lib/IOExts/hPutBuf002.hs
testsuite/tests/lib/IOExts/hPutBuf002.hs
+0
-9
testsuite/tests/lib/IOExts/hPutBuf002.stdout
testsuite/tests/lib/IOExts/hPutBuf002.stdout
+0
-1
testsuite/tests/lib/IOExts/hTell001.hs
testsuite/tests/lib/IOExts/hTell001.hs
+0
-63
testsuite/tests/lib/IOExts/hTell001.stdout
testsuite/tests/lib/IOExts/hTell001.stdout
+0
-38
testsuite/tests/lib/IOExts/hTell002.hs
testsuite/tests/lib/IOExts/hTell002.hs
+0
-33
testsuite/tests/lib/IOExts/hTell002.stdout
testsuite/tests/lib/IOExts/hTell002.stdout
+0
-0
testsuite/tests/lib/IOExts/performGC001.hs
testsuite/tests/lib/IOExts/performGC001.hs
+0
-5
testsuite/tests/lib/IOExts/performGC001.stdout
testsuite/tests/lib/IOExts/performGC001.stdout
+0
-0
testsuite/tests/lib/IOExts/trace001.hs
testsuite/tests/lib/IOExts/trace001.hs
+0
-10
testsuite/tests/lib/IOExts/trace001.stderr
testsuite/tests/lib/IOExts/trace001.stderr
+0
-14
testsuite/tests/lib/IOExts/trace001.stdout
testsuite/tests/lib/IOExts/trace001.stdout
+0
-1
testsuite/tests/lib/libposix/Makefile
testsuite/tests/lib/libposix/Makefile
+0
-3
testsuite/tests/lib/libposix/all.T
testsuite/tests/lib/libposix/all.T
+0
-15
testsuite/tests/lib/libposix/posix002.hs
testsuite/tests/lib/libposix/posix002.hs
+0
-4
testsuite/tests/lib/libposix/posix002.stdout
testsuite/tests/lib/libposix/posix002.stdout
+0
-2
testsuite/tests/lib/libposix/posix003.hs
testsuite/tests/lib/libposix/posix003.hs
+0
-17
testsuite/tests/lib/libposix/posix003.stdout
testsuite/tests/lib/libposix/posix003.stdout
+0
-1
testsuite/tests/lib/libposix/posix004.hs
testsuite/tests/lib/libposix/posix004.hs
+0
-44
testsuite/tests/lib/libposix/posix004.stdout
testsuite/tests/lib/libposix/posix004.stdout
+0
-1
testsuite/tests/lib/libposix/posix005.hs
testsuite/tests/lib/libposix/posix005.hs
+0
-21
testsuite/tests/lib/libposix/posix005.stdout
testsuite/tests/lib/libposix/posix005.stdout
+0
-7
testsuite/tests/lib/libposix/posix006.hs
testsuite/tests/lib/libposix/posix006.hs
+0
-18
testsuite/tests/lib/libposix/posix006.stdout
testsuite/tests/lib/libposix/posix006.stdout
+0
-1
testsuite/tests/lib/libposix/posix009.hs
testsuite/tests/lib/libposix/posix009.hs
+0
-15
testsuite/tests/lib/libposix/posix009.stdout
testsuite/tests/lib/libposix/posix009.stdout
+0
-6
testsuite/tests/lib/libposix/posix010.hs
testsuite/tests/lib/libposix/posix010.hs
+0
-16
testsuite/tests/lib/libposix/posix010.stdout
testsuite/tests/lib/libposix/posix010.stdout
+0
-3
testsuite/tests/lib/libposix/posix014.hs
testsuite/tests/lib/libposix/posix014.hs
+0
-13
testsuite/tests/lib/libposix/posix014.stdout
testsuite/tests/lib/libposix/posix014.stdout
+0
-1
testsuite/tests/lib/should_run/4006.hs
testsuite/tests/lib/should_run/4006.hs
+0
-8
testsuite/tests/lib/should_run/4006.stdout
testsuite/tests/lib/should_run/4006.stdout
+0
-2
testsuite/tests/lib/should_run/Makefile
testsuite/tests/lib/should_run/Makefile
+0
-3
testsuite/tests/lib/should_run/Memo1.lhs
testsuite/tests/lib/should_run/Memo1.lhs
+0
-142
testsuite/tests/lib/should_run/Memo2.lhs
testsuite/tests/lib/should_run/Memo2.lhs
+0
-142
testsuite/tests/lib/should_run/addr001.hs
testsuite/tests/lib/should_run/addr001.hs
+0
-10
testsuite/tests/lib/should_run/addr001.stdout
testsuite/tests/lib/should_run/addr001.stdout
+0
-2
testsuite/tests/lib/should_run/addr001.stdout-alpha-dec-osf3
testsuite/tests/lib/should_run/addr001.stdout-alpha-dec-osf3
+0
-2
testsuite/tests/lib/should_run/addr001.stdout-mips-sgi-irix
testsuite/tests/lib/should_run/addr001.stdout-mips-sgi-irix
+0
-2
testsuite/tests/lib/should_run/addr001.stdout-ws-64
testsuite/tests/lib/should_run/addr001.stdout-ws-64
+0
-2
testsuite/tests/lib/should_run/addr001.stdout-x86_64-unknown-openbsd
...ests/lib/should_run/addr001.stdout-x86_64-unknown-openbsd
+0
-2
testsuite/tests/lib/should_run/all.T
testsuite/tests/lib/should_run/all.T
+0
-69
testsuite/tests/lib/should_run/char001.hs
testsuite/tests/lib/should_run/char001.hs
+0
-43
testsuite/tests/lib/should_run/char001.stdout
testsuite/tests/lib/should_run/char001.stdout
+0
-18
testsuite/tests/lib/should_run/char002.hs
testsuite/tests/lib/should_run/char002.hs
+0
-7
testsuite/tests/lib/should_run/char002.stdout
testsuite/tests/lib/should_run/char002.stdout
+0
-4
testsuite/tests/lib/should_run/cstring001.hs
testsuite/tests/lib/should_run/cstring001.hs
+0
-18
testsuite/tests/lib/should_run/dynamic001.hs
testsuite/tests/lib/should_run/dynamic001.hs
+0
-107
testsuite/tests/lib/should_run/dynamic001.stdout
testsuite/tests/lib/should_run/dynamic001.stdout
+0
-42
testsuite/tests/lib/should_run/dynamic002.hs
testsuite/tests/lib/should_run/dynamic002.hs
+0
-91
testsuite/tests/lib/should_run/dynamic002.stdout
testsuite/tests/lib/should_run/dynamic002.stdout
+0
-64
testsuite/tests/lib/should_run/dynamic003.hs
testsuite/tests/lib/should_run/dynamic003.hs
+0
-12
testsuite/tests/lib/should_run/dynamic003.stdout
testsuite/tests/lib/should_run/dynamic003.stdout
+0
-1
testsuite/tests/lib/should_run/dynamic004.hs
testsuite/tests/lib/should_run/dynamic004.hs
+0
-36
testsuite/tests/lib/should_run/dynamic004.stdout
testsuite/tests/lib/should_run/dynamic004.stdout
+0
-1
testsuite/tests/lib/should_run/dynamic005.hs
testsuite/tests/lib/should_run/dynamic005.hs
+0
-14
testsuite/tests/lib/should_run/dynamic005.stdout
testsuite/tests/lib/should_run/dynamic005.stdout
+0
-1
testsuite/tests/lib/should_run/enum01.hs
testsuite/tests/lib/should_run/enum01.hs
+0
-526
testsuite/tests/lib/should_run/enum01.stdout
testsuite/tests/lib/should_run/enum01.stdout
+0
-246
testsuite/tests/lib/should_run/enum01.stdout-alpha-dec-osf3
testsuite/tests/lib/should_run/enum01.stdout-alpha-dec-osf3
+0
-230
testsuite/tests/lib/should_run/enum01.stdout-hugs
testsuite/tests/lib/should_run/enum01.stdout-hugs
+0
-246
testsuite/tests/lib/should_run/enum01.stdout-ws-64
testsuite/tests/lib/should_run/enum01.stdout-ws-64
+0
-246
testsuite/tests/lib/should_run/enum02.hs
testsuite/tests/lib/should_run/enum02.hs
+0
-263
testsuite/tests/lib/should_run/enum02.stdout
testsuite/tests/lib/should_run/enum02.stdout
+0
-141
testsuite/tests/lib/should_run/enum02.stdout-alpha-dec-osf3
testsuite/tests/lib/should_run/enum02.stdout-alpha-dec-osf3
+0
-141
testsuite/tests/lib/should_run/enum02.stdout-hugs
testsuite/tests/lib/should_run/enum02.stdout-hugs
+0
-141
testsuite/tests/lib/should_run/enum02.stdout-mips-sgi-irix
testsuite/tests/lib/should_run/enum02.stdout-mips-sgi-irix
+0
-141
testsuite/tests/lib/should_run/enum02.stdout-ws-64
testsuite/tests/lib/should_run/enum02.stdout-ws-64
+0
-141
testsuite/tests/lib/should_run/enum02.stdout-x86_64-unknown-openbsd
...tests/lib/should_run/enum02.stdout-x86_64-unknown-openbsd
+0
-141
testsuite/tests/lib/should_run/enum03.hs
testsuite/tests/lib/should_run/enum03.hs
+0
-266
testsuite/tests/lib/should_run/enum03.stdout
testsuite/tests/lib/should_run/enum03.stdout
+0
-142
testsuite/tests/lib/should_run/enum03.stdout-alpha-dec-osf3
testsuite/tests/lib/should_run/enum03.stdout-alpha-dec-osf3
+0
-142
testsuite/tests/lib/should_run/enum03.stdout-hugs
testsuite/tests/lib/should_run/enum03.stdout-hugs
+0
-142
testsuite/tests/lib/should_run/enum03.stdout-mips-sgi-irix
testsuite/tests/lib/should_run/enum03.stdout-mips-sgi-irix
+0
-142
testsuite/tests/lib/should_run/enum03.stdout-ws-64
testsuite/tests/lib/should_run/enum03.stdout-ws-64
+0
-142
testsuite/tests/lib/should_run/enum03.stdout-x86_64-unknown-openbsd
...tests/lib/should_run/enum03.stdout-x86_64-unknown-openbsd
+0
-142
testsuite/tests/lib/should_run/enum04.hs
testsuite/tests/lib/should_run/enum04.hs
+0
-15
testsuite/tests/lib/should_run/enum04.stdout
testsuite/tests/lib/should_run/enum04.stdout
+0
-4
testsuite/tests/lib/should_run/exceptionsrun001.hs
testsuite/tests/lib/should_run/exceptionsrun001.hs
+0
-47
testsuite/tests/lib/should_run/exceptionsrun001.stdout
testsuite/tests/lib/should_run/exceptionsrun001.stdout
+0
-5
testsuite/tests/lib/should_run/exceptionsrun002.hs
testsuite/tests/lib/should_run/exceptionsrun002.hs
+0
-96
testsuite/tests/lib/should_run/exceptionsrun002.stdout
testsuite/tests/lib/should_run/exceptionsrun002.stdout
+0
-40
testsuite/tests/lib/should_run/length001.hs
testsuite/tests/lib/should_run/length001.hs
+0
-8
testsuite/tests/lib/should_run/length001.stdout
testsuite/tests/lib/should_run/length001.stdout
+0
-2
testsuite/tests/lib/should_run/list001.hs
testsuite/tests/lib/should_run/list001.hs
+0
-152
testsuite/tests/lib/should_run/list001.stdout
testsuite/tests/lib/should_run/list001.stdout
+0
-54
testsuite/tests/lib/should_run/list001.stdout-ghc
testsuite/tests/lib/should_run/list001.stdout-ghc
+0
-54
testsuite/tests/lib/should_run/list002.hs
testsuite/tests/lib/should_run/list002.hs
+0
-6
testsuite/tests/lib/should_run/list002.stdout
testsuite/tests/lib/should_run/list002.stdout
+0
-1
testsuite/tests/lib/should_run/list003.hs
testsuite/tests/lib/should_run/list003.hs
+0
-7
testsuite/tests/lib/should_run/list003.stdout
testsuite/tests/lib/should_run/list003.stdout
+0
-1
testsuite/tests/lib/should_run/memo001.hs
testsuite/tests/lib/should_run/memo001.hs
+0
-19
testsuite/tests/lib/should_run/memo001.stdout
testsuite/tests/lib/should_run/memo001.stdout
+0
-1
testsuite/tests/lib/should_run/memo002.hs
testsuite/tests/lib/should_run/memo002.hs
+0
-30
testsuite/tests/lib/should_run/memo002.stdout
testsuite/tests/lib/should_run/memo002.stdout
+0
-44
testsuite/tests/lib/should_run/packedstring001.hs
testsuite/tests/lib/should_run/packedstring001.hs
+0
-11
testsuite/tests/lib/should_run/packedstring001.stdout
testsuite/tests/lib/should_run/packedstring001.stdout
+0
-1
testsuite/tests/lib/should_run/rand001.hs
testsuite/tests/lib/should_run/rand001.hs
+0
-22
testsuite/tests/lib/should_run/rand001.stdout
testsuite/tests/lib/should_run/rand001.stdout
+0
-5
testsuite/tests/lib/should_run/ratio001.hs
testsuite/tests/lib/should_run/ratio001.hs
+0
-4
testsuite/tests/lib/should_run/ratio001.stdout
testsuite/tests/lib/should_run/ratio001.stdout
+0
-1
testsuite/tests/lib/should_run/ratio001.stdout-ghc
testsuite/tests/lib/should_run/ratio001.stdout-ghc
+0
-1
testsuite/tests/lib/should_run/reads001.hs
testsuite/tests/lib/should_run/reads001.hs
+0
-10
testsuite/tests/lib/should_run/reads001.stdout
testsuite/tests/lib/should_run/reads001.stdout
+0
-4
testsuite/tests/lib/should_run/show001.hs
testsuite/tests/lib/should_run/show001.hs
+0
-24
testsuite/tests/lib/should_run/show001.stdout
testsuite/tests/lib/should_run/show001.stdout
+0
-15
testsuite/tests/lib/should_run/stableptr001.hs
testsuite/tests/lib/should_run/stableptr001.hs
+0
-19
testsuite/tests/lib/should_run/stableptr001.stdout
testsuite/tests/lib/should_run/stableptr001.stdout
+0
-1
testsuite/tests/lib/should_run/stableptr003.hs
testsuite/tests/lib/should_run/stableptr003.hs
+0
-16
testsuite/tests/lib/should_run/stableptr004.hs
testsuite/tests/lib/should_run/stableptr004.hs
+0
-12
testsuite/tests/lib/should_run/stableptr004.stdout
testsuite/tests/lib/should_run/stableptr004.stdout
+0
-2
testsuite/tests/lib/should_run/stableptr005.hs
testsuite/tests/lib/should_run/stableptr005.hs
+0
-22
testsuite/tests/lib/should_run/stableptr005.stdout
testsuite/tests/lib/should_run/stableptr005.stdout
+0
-1
testsuite/tests/lib/should_run/text001.hs
testsuite/tests/lib/should_run/text001.hs
+0
-15
testsuite/tests/lib/should_run/text001.stdout
testsuite/tests/lib/should_run/text001.stdout
+0
-1
testsuite/tests/lib/should_run/tup001.hs
testsuite/tests/lib/should_run/tup001.hs
+0
-33
testsuite/tests/lib/should_run/tup001.stdout
testsuite/tests/lib/should_run/tup001.stdout
+0
-7
testsuite/tests/lib/should_run/weak001.hs
testsuite/tests/lib/should_run/weak001.hs
+0
-12
No files found.
testsuite/tests/lib/Concurrent/4876.hs
deleted
100644 → 0
View file @
253d34d2
import
System.Random
import
Control.Concurrent.SampleVar
import
Control.Concurrent
import
Control.Monad
produce
,
consume
::
SampleVar
Int
->
IO
()
produce
svar
=
do
b
<-
isEmptySampleVar
svar
if
b
then
writeSampleVar
svar
3
else
return
()
consume
svar
=
readSampleVar
svar
>>=
print
main
=
do
svar
<-
newEmptySampleVar
m
<-
newEmptyMVar
forkIO
$
consume
svar
>>
putMVar
m
()
threadDelay
100000
-- 100 ms
produce
svar
takeMVar
m
-- deadlocked before the fix in #4876
testsuite/tests/lib/Concurrent/4876.stdout
deleted
100644 → 0
View file @
253d34d2
3
testsuite/tests/lib/Concurrent/Chan001.hs
deleted
100644 → 0
View file @
253d34d2
import
Debug.QuickCheck
import
System.IO.Unsafe
import
Control.Concurrent.Chan
import
Control.Concurrent
import
Control.Monad
data
Action
=
NewChan
|
ReadChan
|
WriteChan
Int
|
IsEmptyChan
|
ReturnInt
Int
|
ReturnBool
Bool
deriving
(
Eq
,
Show
)
main
=
do
t
<-
myThreadId
forkIO
(
threadDelay
1000000
>>
killThread
t
)
-- just in case we deadlock
testChan
testChan
::
IO
()
testChan
=
do
quickCheck
prop_NewIs_NewRet
quickCheck
prop_NewWriteIs_NewRet
quickCheck
prop_NewWriteRead_NewRet
prop_NewIs_NewRet
=
[
NewChan
,
IsEmptyChan
]
=^
[
NewChan
,
ReturnBool
True
]
prop_NewWriteIs_NewRet
n
=
[
NewChan
,
WriteChan
n
,
IsEmptyChan
]
=^
[
NewChan
,
WriteChan
n
,
ReturnBool
False
]
prop_NewWriteRead_NewRet
n
=
[
NewChan
,
WriteChan
n
,
ReadChan
]
=^
[
NewChan
,
ReturnInt
n
]
perform
::
[
Action
]
->
IO
([
Bool
],[
Int
])
perform
[]
=
return
(
[]
,
[]
)
perform
(
a
:
as
)
=
case
a
of
ReturnInt
v
->
liftM
(
\
(
b
,
l
)
->
(
b
,
v
:
l
))
(
perform
as
)
ReturnBool
v
->
liftM
(
\
(
b
,
l
)
->
(
v
:
b
,
l
))
(
perform
as
)
NewChan
->
newChan
>>=
\
chan
->
perform'
chan
as
_
->
error
$
"Please use NewChan as first action"
perform'
::
Chan
Int
->
[
Action
]
->
IO
([
Bool
],[
Int
])
perform'
_
[]
=
return
(
[]
,
[]
)
perform'
chan
(
a
:
as
)
=
case
a
of
ReturnInt
v
->
liftM
(
\
(
b
,
l
)
->
(
b
,
v
:
l
))
(
perform'
chan
as
)
ReturnBool
v
->
liftM
(
\
(
b
,
l
)
->
(
v
:
b
,
l
))
(
perform'
chan
as
)
ReadChan
->
liftM2
(
\
v
(
b
,
l
)
->
(
b
,
v
:
l
))
(
readChan
chan
)
(
perform'
chan
as
)
WriteChan
n
->
writeChan
chan
n
>>
perform'
chan
as
IsEmptyChan
->
liftM2
(
\
v
(
b
,
l
)
->
(
v
:
b
,
l
))
(
isEmptyChan
chan
)
(
perform'
chan
as
)
_
->
error
$
"If you want to use "
++
show
a
++
" please use the =^ operator"
actions
::
Gen
[
Action
]
actions
=
liftM
(
NewChan
:
)
(
actions'
0
)
actions'
::
Int
->
Gen
[
Action
]
actions'
contents
=
oneof
([
return
[]
,
liftM
(
IsEmptyChan
:
)
(
actions'
contents
),
liftM2
(
:
)
(
liftM
WriteChan
arbitrary
)
(
actions'
(
contents
+
1
))]
++
if
contents
==
0
then
[]
else
[
liftM
(
ReadChan
:
)
(
actions'
(
contents
-
1
))])
(
=^
)
::
[
Action
]
->
[
Action
]
->
Property
c
=^
c'
=
forAll
(
actions'
(
delta
0
c
))
(
\
suff
->
observe
c
suff
==
observe
c'
suff
)
where
observe
x
suff
=
unsafePerformIO
(
perform
(
x
++
suff
))
(
^=^
)
::
[
Action
]
->
[
Action
]
->
Property
c
^=^
c'
=
forAll
actions
(
\
pref
->
forAll
(
actions'
(
delta
0
(
pref
++
c
)))
(
\
suff
->
observe
c
pref
suff
==
observe
c'
pref
suff
))
where
observe
x
pref
suff
=
unsafePerformIO
(
perform
(
pref
++
x
++
suff
))
delta
::
Int
->
[
Action
]
->
Int
delta
i
[]
=
i
delta
i
(
ReturnInt
_
:
as
)
=
delta
i
as
delta
i
(
ReturnBool
_
:
as
)
=
delta
i
as
delta
_
(
NewChan
:
as
)
=
delta
0
as
delta
i
(
WriteChan
_
:
as
)
=
delta
(
i
+
1
)
as
delta
i
(
ReadChan
:
as
)
=
delta
(
if
i
==
0
then
error
"read on empty Chan"
else
i
-
1
)
as
delta
i
(
IsEmptyChan
:
as
)
=
delta
i
as
testsuite/tests/lib/Concurrent/Chan001.stdout
deleted
100644 → 0
View file @
253d34d2
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899OK, passed 100 tests.
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899OK, passed 100 tests.
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899OK, passed 100 tests.
testsuite/tests/lib/Concurrent/MVar001.hs
deleted
100644 → 0
View file @
253d34d2
import
Debug.QuickCheck
import
System.IO.Unsafe
import
Control.Concurrent.MVar
import
Control.Concurrent
import
Control.Monad
data
Action
=
NewEmptyMVar
|
NewMVar
Int
|
TakeMVar
|
ReadMVar
|
PutMVar
Int
|
SwapMVar
Int
|
IsEmptyMVar
|
ReturnInt
Int
|
ReturnBool
Bool
deriving
(
Eq
,
Show
)
main
=
do
t
<-
myThreadId
forkIO
(
threadDelay
1000000
>>
killThread
t
)
-- just in case we deadlock
testMVar
testMVar
::
IO
()
testMVar
=
do
quickCheck
prop_NewEIs_NewERet
quickCheck
prop_NewIs_NewRet
quickCheck
prop_NewTake_NewRet
quickCheck
prop_NewEPutTake_NewERet
quickCheck
prop_NewRead_NewRet
quickCheck
prop_NewSwap_New
prop_NewEIs_NewERet
=
[
NewEmptyMVar
,
IsEmptyMVar
]
=^
[
NewEmptyMVar
,
ReturnBool
True
]
prop_NewIs_NewRet
n
=
[
NewMVar
n
,
IsEmptyMVar
]
=^
[
NewMVar
n
,
ReturnBool
False
]
prop_NewTake_NewRet
n
=
[
NewMVar
n
,
TakeMVar
]
=^
[
NewEmptyMVar
,
ReturnInt
n
]
prop_NewEPutTake_NewERet
n
=
[
NewEmptyMVar
,
PutMVar
n
,
TakeMVar
]
=^
[
NewEmptyMVar
,
ReturnInt
n
]
prop_NewRead_NewRet
n
=
[
NewMVar
n
,
ReadMVar
]
=^
[
NewMVar
n
,
ReturnInt
n
]
prop_NewSwap_New
m
n
=
[
NewMVar
m
,
SwapMVar
n
]
=^
[
NewMVar
n
]
perform
::
[
Action
]
->
IO
([
Bool
],[
Int
])
perform
[]
=
return
(
[]
,
[]
)
perform
(
a
:
as
)
=
case
a
of
ReturnInt
v
->
liftM
(
\
(
b
,
l
)
->
(
b
,
v
:
l
))
(
perform
as
)
ReturnBool
v
->
liftM
(
\
(
b
,
l
)
->
(
v
:
b
,
l
))
(
perform
as
)
NewEmptyMVar
->
newEmptyMVar
>>=
\
mv
->
perform'
mv
as
NewMVar
n
->
newMVar
n
>>=
\
mv
->
perform'
mv
as
_
->
error
$
"Please use NewMVar or NewEmptyMVar as first "
++
"action"
perform'
::
MVar
Int
->
[
Action
]
->
IO
([
Bool
],[
Int
])
perform'
_
[]
=
return
(
[]
,
[]
)
perform'
mv
(
a
:
as
)
=
case
a
of
ReturnInt
v
->
liftM
(
\
(
b
,
l
)
->
(
b
,
v
:
l
))
(
perform'
mv
as
)
ReturnBool
v
->
liftM
(
\
(
b
,
l
)
->
(
v
:
b
,
l
))
(
perform'
mv
as
)
TakeMVar
->
liftM2
(
\
v
(
b
,
l
)
->
(
b
,
v
:
l
))
(
takeMVar
mv
)
(
perform'
mv
as
)
ReadMVar
->
liftM2
(
\
v
(
b
,
l
)
->
(
b
,
v
:
l
))
(
readMVar
mv
)
(
perform'
mv
as
)
PutMVar
n
->
putMVar
mv
n
>>
perform'
mv
as
SwapMVar
n
->
swapMVar
mv
n
>>
perform'
mv
as
IsEmptyMVar
->
liftM2
(
\
v
(
b
,
l
)
->
(
v
:
b
,
l
))
(
isEmptyMVar
mv
)
(
perform'
mv
as
)
_
->
error
$
"If you want to use "
++
show
a
++
" please use the =^ operator"
actions
::
Gen
[
Action
]
actions
=
do
oneof
[
liftM
(
NewEmptyMVar
:
)
(
actions'
True
),
liftM2
(
:
)
(
liftM
NewMVar
arbitrary
)
(
actions'
False
)]
actions'
::
Bool
->
Gen
[
Action
]
actions'
empty
=
oneof
([
return
[]
,
liftM
(
IsEmptyMVar
:
)
(
actions'
empty
)]
++
if
empty
then
[
liftM2
(
:
)
(
liftM
PutMVar
arbitrary
)
(
actions'
False
)]
else
[]
++
if
empty
then
[]
else
[
liftM
(
TakeMVar
:
)
(
actions'
True
)]
++
if
empty
then
[]
else
[
liftM
(
ReadMVar
:
)
(
actions'
False
)]
++
if
empty
then
[]
else
[
liftM2
(
:
)
(
liftM
SwapMVar
arbitrary
)
(
actions'
False
)]
)
(
=^
)
::
[
Action
]
->
[
Action
]
->
Property
c
=^
c'
=
forAll
(
actions'
(
delta
True
c
))
(
\
suff
->
observe
c
suff
==
observe
c'
suff
)
where
observe
x
suff
=
unsafePerformIO
(
perform
(
x
++
suff
))
(
^=^
)
::
[
Action
]
->
[
Action
]
->
Property
c
^=^
c'
=
forAll
actions
(
\
pref
->
forAll
(
actions'
(
delta
True
(
pref
++
c
)))
(
\
suff
->
observe
c
pref
suff
==
observe
c'
pref
suff
))
where
observe
x
pref
suff
=
unsafePerformIO
(
perform
(
pref
++
x
++
suff
))
delta
::
Bool
->
[
Action
]
->
Bool
delta
b
[]
=
b
delta
b
(
ReturnInt
_
:
as
)
=
delta
b
as
delta
b
(
ReturnBool
_
:
as
)
=
delta
b
as
delta
_
(
NewEmptyMVar
:
as
)
=
delta
True
as
delta
_
(
NewMVar
_
:
as
)
=
delta
False
as
delta
b
(
TakeMVar
:
as
)
=
delta
(
if
b
then
error
"take on empty MVar"
else
True
)
as
delta
b
(
ReadMVar
:
as
)
=
delta
(
if
b
then
error
"read on empty MVar"
else
False
)
as
delta
_
(
PutMVar
_
:
as
)
=
delta
False
as
delta
b
(
SwapMVar
_
:
as
)
=
delta
(
if
b
then
error
"swap on empty MVar"
else
False
)
as
delta
b
(
IsEmptyMVar
:
as
)
=
delta
b
as
testsuite/tests/lib/Concurrent/MVar001.stdout
deleted
100644 → 0
View file @
253d34d2
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899OK, passed 100 tests.
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899OK, passed 100 tests.
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899OK, passed 100 tests.
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899OK, passed 100 tests.
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899OK, passed 100 tests.
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899OK, passed 100 tests.
testsuite/tests/lib/Concurrent/Makefile
deleted
100644 → 0
View file @
253d34d2
TOP
=
../../..
include
$(TOP)/mk/boilerplate.mk
include
$(TOP)/mk/test.mk
testsuite/tests/lib/Concurrent/QSem001.hs
deleted
100644 → 0
View file @
253d34d2
import
Debug.QuickCheck
import
System.IO.Unsafe
import
Control.Concurrent.QSem
import
Control.Concurrent
import
Control.Monad
main
=
do
t
<-
myThreadId
forkIO
(
threadDelay
1000000
>>
killThread
t
)
-- just in case we deadlock
testQSem
data
Action
=
NewQSem
Int
|
SignalQSem
|
WaitQSem
deriving
(
Eq
,
Show
)
testQSem
::
IO
()
testQSem
=
do
quietCheck
prop_SignalWait
quietCheck
prop_WaitSignal
quietCheck
=
check
defaultConfig
{
configEvery
=
\
n
args
->
""
}
prop_SignalWait
n
=
n
>=
0
==>
[
NewQSem
n
,
SignalQSem
,
WaitQSem
]
=^
[
NewQSem
n
]
prop_WaitSignal
n
=
n
>=
1
==>
[
NewQSem
n
,
WaitQSem
,
SignalQSem
]
=^
[
NewQSem
n
]
perform
::
[
Action
]
->
IO
()
perform
[]
=
return
()
perform
(
a
:
as
)
=
case
a
of
NewQSem
n
->
newQSem
n
>>=
\
qs
->
perform'
qs
as
_
->
error
$
"Please use NewQSem as first action"
++
show
a
perform'
::
QSem
->
[
Action
]
->
IO
()
perform'
_
[]
=
return
()
perform'
qs
(
a
:
as
)
=
case
a
of
SignalQSem
->
signalQSem
qs
>>
perform'
qs
as
WaitQSem
->
waitQSem
qs
>>
perform'
qs
as
_
->
error
$
"If you want to use "
++
show
a
++
" please use the =^ operator"
actions
::
Gen
[
Action
]
actions
=
do
i
<-
arbitrary
liftM
(
NewQSem
i
:
)
(
actions'
i
)
actions'
::
Int
->
Gen
[
Action
]
actions'
quantity
=
oneof
([
return
[]
,
liftM
(
SignalQSem
:
)
(
actions'
(
quantity
+
1
))]
++
if
quantity
<=
0
then
[]
else
[
liftM
(
WaitQSem
:
)
(
actions'
(
quantity
-
1
))])
(
=^
)
::
[
Action
]
->
[
Action
]
->
Property
c
=^
c'
=
forAll
(
actions'
(
delta
0
c
))
(
\
suff
->
observe
c
suff
==
observe
c'
suff
)
where
observe
x
suff
=
unsafePerformIO
(
perform
(
x
++
suff
))
(
^=^
)
::
[
Action
]
->
[
Action
]
->
Property
c
^=^
c'
=
forAll
actions
(
\
pref
->
forAll
(
actions'
(
delta
0
(
pref
++
c
)))
(
\
suff
->
observe
c
pref
suff
==
observe
c'
pref
suff
))
where
observe
x
pref
suff
=
unsafePerformIO
(
perform
(
pref
++
x
++
suff
))
delta
::
Int
->
[
Action
]
->
Int
delta
i
[]
=
i
delta
_
(
NewQSem
i
:
as
)
=
delta
i
as
delta
i
(
SignalQSem
:
as
)
=
delta
(
i
+
1
)
as
delta
i
(
WaitQSem
:
as
)
=
delta
(
if
i
<=
0
then
error
"wait on 'empty' QSem"
else
i
-
1
)
as
testsuite/tests/lib/Concurrent/QSem001.stdout
deleted
100644 → 0
View file @
253d34d2
OK, passed 100 tests.
OK, passed 100 tests.
testsuite/tests/lib/Concurrent/QSemN001.hs
deleted
100644 → 0
View file @
253d34d2
import
Debug.QuickCheck
import
System.IO.Unsafe
import
Control.Concurrent.QSemN
import
Control.Concurrent
import
Control.Monad
main
=
do
t
<-
myThreadId
forkIO
(
threadDelay
1000000
>>
killThread
t
)
-- just in case we deadlock
testQSemN
data
Action
=
NewQSemN
Int
|
SignalQSemN
Int
|
WaitQSemN
Int
deriving
(
Eq
,
Show
)
testQSemN
::
IO
()
testQSemN
=
do
quietCheck
prop_SignalWait
quietCheck
prop_WaitSignal
quietCheck
=
check
defaultConfig
{
configEvery
=
\
n
args
->
""
}
prop_SignalWait
l
m
n
=
l
+
m
>=
n
==>
[
NewQSemN
l
,
SignalQSemN
m
,
WaitQSemN
n
]
=^
[
NewQSemN
(
l
+
m
-
n
)]
prop_WaitSignal
l
m
n
=
l
>=
m
==>
[
NewQSemN
l
,
WaitQSemN
m
,
SignalQSemN
n
]
=^
[
NewQSemN
(
l
-
m
+
n
)]
perform
::
[
Action
]
->
IO
[
Int
]
perform
[]
=
return
[]
perform
(
a
:
as
)
=
case
a
of
NewQSemN
n
->
newQSemN
n
>>=
\
qs
->
perform'
qs
as
_
->
error
$
"Please use NewQSemN as first action"
++
show
a
perform'
::
QSemN
->
[
Action
]
->
IO
[
Int
]
perform'
_
[]
=
return
[]
perform'
qs
(
a
:
as
)
=
case
a
of
SignalQSemN
n
->
signalQSemN
qs
n
>>
perform'
qs
as
WaitQSemN
n
->
waitQSemN
qs
n
>>
perform'
qs
as
_
->
error
$
"If you want to use "
++
show
a
++
" please use the =^ operator"
actions
::
Gen
[
Action
]
actions
=
do
i
<-
arbitrary
liftM
(
NewQSemN
i
:
)
(
actions'
i
)
actions'
::
Int
->
Gen
[
Action
]
actions'
quantity
=
oneof
([
return
[]
,
do
i
<-
choose
(
0
,
maxBound
)
liftM
(
SignalQSemN
i
:
)
(
actions'
(
quantity
+
i
))]
++
if
quantity
<=
0
then
[]
else
[
do
i
<-
choose
(
0
,
quantity
)
liftM
(
WaitQSemN
i
:
)
(
actions'
(
quantity
-
i
))])
(
=^
)
::
[
Action
]
->
[
Action
]
->
Property
c
=^
c'
=
forAll
(
actions'
(
delta
0
c
))
(
\
suff
->
observe
c
suff
==
observe
c'
suff
)
where
observe
x
suff
=
unsafePerformIO
(
perform
(
x
++
suff
))
(
^=^
)
::
[
Action
]
->
[
Action
]
->
Property
c
^=^
c'
=
forAll
actions
(
\
pref
->
forAll
(
actions'
(
delta
0
(
pref
++
c
)))
(
\
suff
->
observe
c
pref
suff
==
observe
c'
pref
suff
))
where
observe
x
pref
suff
=
unsafePerformIO
(
perform
(
pref
++
x
++
suff
))
delta
::
Int
->
[
Action
]
->
Int
delta
i
[]
=
i
delta
_
(
NewQSemN
i
:
as
)
=
delta
i
as
delta
i
(
SignalQSemN
n
:
as
)
=
delta
(
i
+
n
)
as
delta
i
(
WaitQSemN
n
:
as
)
=
delta
(
if
i
<
n