#136 Copy files back from Nomad runner.

This commit is contained in:
Maximilian Paß
2022-08-06 04:52:48 +02:00
parent ae7b3ccd58
commit f2b25566dd
11 changed files with 191 additions and 21 deletions

View File

@ -159,6 +159,7 @@ var (
ErrMissingType = errors.New("type is missing")
ErrMissingData = errors.New("data is missing")
ErrInvalidType = errors.New("invalid type")
ErrNotSupported = errors.New("not supported")
)
// WebSocketMessage is the type for all messages send in the WebSocket to the client.

View File

@ -20,7 +20,7 @@ type Reader struct {
}
func (r Reader) Read(_ []byte) (int, error) {
if r.Ctx.Err() != nil {
if r.Ctx == nil || r.Ctx.Err() != nil {
return 0, io.EOF
}

View File

@ -10,28 +10,38 @@ import (
const shortTimeout = 100 * time.Millisecond
func TestReaderDoesNotReturnImmediately(t *testing.T) {
readingContext, cancel := context.WithCancel(context.Background())
defer cancel()
reader := &Reader{readingContext}
readerReturned := make(chan bool)
go func() {
func TestReader_Read(t *testing.T) {
read := func(reader io.Reader, ret chan<- bool) {
p := make([]byte, 0, 5)
_, err := reader.Read(p)
assert.ErrorIs(t, io.EOF, err)
close(readerReturned)
}()
var received bool
select {
case <-readerReturned:
received = true
case <-time.After(shortTimeout):
received = false
close(ret)
}
assert.False(t, received)
t.Run("WithContext_DoesNotReturnImmediately", func(t *testing.T) {
readingContext, cancel := context.WithCancel(context.Background())
defer cancel()
readerReturned := make(chan bool)
go read(&Reader{readingContext}, readerReturned)
select {
case <-readerReturned:
assert.Fail(t, "The reader returned before the timeout was reached")
case <-time.After(shortTimeout):
}
})
t.Run("WithoutContext_DoesReturnImmediately", func(t *testing.T) {
readerReturned := make(chan bool)
go read(&Reader{}, readerReturned)
select {
case <-readerReturned:
case <-time.After(shortTimeout):
assert.Fail(t, "The reader returned before the timeout was reached")
}
})
}
func TestReadWriterWritesEverything(t *testing.T) {