Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
329567ec
Commit
329567ec
authored
Dec 01, 2015
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #17739 from ncdc/fix-port-forward-test-flake
Auto commit by PR queue bot
parents
9afb0201
2fae8471
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
25 deletions
+18
-25
portforward_test.go
pkg/client/unversioned/portforward/portforward_test.go
+18
-25
No files found.
pkg/client/unversioned/portforward/portforward_test.go
View file @
329567ec
...
@@ -207,6 +207,8 @@ func TestGetListener(t *testing.T) {
...
@@ -207,6 +207,8 @@ func TestGetListener(t *testing.T) {
// kubelet.PortForwarder.
// kubelet.PortForwarder.
type
fakePortForwarder
struct
{
type
fakePortForwarder
struct
{
lock
sync
.
Mutex
lock
sync
.
Mutex
// stores data expected from the stream per port
expected
map
[
uint16
]
string
// stores data received from the stream per port
// stores data received from the stream per port
received
map
[
uint16
]
string
received
map
[
uint16
]
string
// data to be sent to the stream per port
// data to be sent to the stream per port
...
@@ -218,33 +220,23 @@ var _ kubelet.PortForwarder = &fakePortForwarder{}
...
@@ -218,33 +220,23 @@ var _ kubelet.PortForwarder = &fakePortForwarder{}
func
(
pf
*
fakePortForwarder
)
PortForward
(
name
string
,
uid
types
.
UID
,
port
uint16
,
stream
io
.
ReadWriteCloser
)
error
{
func
(
pf
*
fakePortForwarder
)
PortForward
(
name
string
,
uid
types
.
UID
,
port
uint16
,
stream
io
.
ReadWriteCloser
)
error
{
defer
stream
.
Close
()
defer
stream
.
Close
()
var
wg
sync
.
WaitGroup
// read from the client
received
:=
make
([]
byte
,
len
(
pf
.
expected
[
port
]))
// client -> server
n
,
err
:=
stream
.
Read
(
received
)
wg
.
Add
(
1
)
if
err
!=
nil
{
go
func
()
{
return
fmt
.
Errorf
(
"error reading from client for port %d: %v"
,
port
,
err
)
defer
wg
.
Done
()
}
if
n
!=
len
(
pf
.
expected
[
port
])
{
// copy from stream into a buffer
return
fmt
.
Errorf
(
"unexpected length read from client for port %d: got %d, expected %d. data=%q"
,
port
,
n
,
len
(
pf
.
expected
[
port
]),
string
(
received
))
received
:=
new
(
bytes
.
Buffer
)
}
io
.
Copy
(
received
,
stream
)
// store the received content
pf
.
lock
.
Lock
()
pf
.
received
[
port
]
=
received
.
String
()
pf
.
lock
.
Unlock
()
}()
// server -> client
wg
.
Add
(
1
)
go
func
()
{
defer
wg
.
Done
()
// send the hardcoded data to the stream
// store the received content
io
.
Copy
(
stream
,
strings
.
NewReader
(
pf
.
send
[
port
]))
pf
.
lock
.
Lock
()
}()
pf
.
received
[
port
]
=
string
(
received
)
pf
.
lock
.
Unlock
()
wg
.
Wait
()
// send the hardcoded data to the client
io
.
Copy
(
stream
,
strings
.
NewReader
(
pf
.
send
[
port
]))
return
nil
return
nil
}
}
...
@@ -254,6 +246,7 @@ func (pf *fakePortForwarder) PortForward(name string, uid types.UID, port uint16
...
@@ -254,6 +246,7 @@ func (pf *fakePortForwarder) PortForward(name string, uid types.UID, port uint16
func
fakePortForwardServer
(
t
*
testing
.
T
,
testName
string
,
serverSends
,
expectedFromClient
map
[
uint16
]
string
)
http
.
HandlerFunc
{
func
fakePortForwardServer
(
t
*
testing
.
T
,
testName
string
,
serverSends
,
expectedFromClient
map
[
uint16
]
string
)
http
.
HandlerFunc
{
return
http
.
HandlerFunc
(
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
pf
:=
&
fakePortForwarder
{
pf
:=
&
fakePortForwarder
{
expected
:
expectedFromClient
,
received
:
make
(
map
[
uint16
]
string
),
received
:
make
(
map
[
uint16
]
string
),
send
:
serverSends
,
send
:
serverSends
,
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment