FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
node/test/sequential/test-repl-timeout-throw.js at main · fetchapi/node · GitHub
fetchapi
/
node
Public
forked from
nodejs/node
Notifications
You must be signed in to change notification settings
Fork
1
Star
0
Code
Pull requests
1
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
node
/
test
/
sequential
/
test-repl-timeout-throw.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
59 lines (51 loc) · 1.71 KB
Breadcrumbs
node
/
test
/
sequential
/
test-repl-timeout-throw.js
Copy path
File metadata and controls
59 lines (51 loc) · 1.71 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
'use strict'
;
require
(
'../common'
)
;
const
assert
=
require
(
'assert'
)
;
const
spawn
=
require
(
'child_process'
)
.
spawn
;
const
child
=
spawn
(
process
.
execPath
,
[
'-i'
]
,
{
stdio
:
[
null
,
null
,
2
]
}
)
;
let
stdout
=
''
;
child
.
stdout
.
setEncoding
(
'utf8'
)
;
child
.
stdout
.
on
(
'data'
,
function
(
c
)
{
process
.
stdout
.
write
(
c
)
;
stdout
+=
c
;
if
(
stdout
.
includes
(
'> THROW 2'
)
)
child
.
stdin
.
end
(
)
;
}
)
;
child
.
stdin
.
write
=
function
(
original
)
{
return
function
(
c
)
{
process
.
stderr
.
write
(
c
)
;
return
original
.
call
(
child
.
stdin
,
c
)
;
}
;
}
(
child
.
stdin
.
write
)
;
child
.
stdout
.
once
(
'data'
,
function
(
)
{
child
.
stdin
.
write
(
'let throws = 0;'
)
;
child
.
stdin
.
write
(
'process.on("exit",function(){console.log(throws)});'
)
;
child
.
stdin
.
write
(
'function thrower(){console.log("THROW",throws++);XXX};'
)
;
child
.
stdin
.
write
(
'setTimeout(thrower);""\n'
)
;
setTimeout
(
fsTest
,
50
)
;
function
fsTest
(
)
{
const
f
=
JSON
.
stringify
(
__filename
)
;
child
.
stdin
.
write
(
`fs.readFile(
${
f
}
, thrower);\n`
)
;
setTimeout
(
eeTest
,
50
)
;
}
function
eeTest
(
)
{
child
.
stdin
.
write
(
'setTimeout(function() {\n'
+
' const events = require("events");\n'
+
' let e = new events.EventEmitter;\n'
+
' process.nextTick(function() {\n'
+
' e.on("x", thrower);\n'
+
' setTimeout(function() {\n'
+
' e.emit("x");\n'
+
' });\n'
+
' });\n'
+
'});"";\n'
)
;
}
}
)
;
child
.
on
(
'close'
,
function
(
c
)
{
assert
.
strictEqual
(
c
,
0
)
;
// Make sure we got 3 throws, in the end.
const
lastLine
=
stdout
.
trim
(
)
.
split
(
/
\r
?
\n
/
)
.
pop
(
)
;
assert
.
strictEqual
(
lastLine
,
'> 3'
)
;
}
)
;
Back
|
FazBrowse Home
|
New Git URL