Skip to content

Commit 7ffcf69

Browse files
committed
Try to reduce flakiness of Docker container attach tests
1 parent a210ee3 commit 7ffcf69

File tree

6 files changed

+38
-23
lines changed

6 files changed

+38
-23
lines changed

test/fixtures/docker/go/app.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ func main() {
1717

1818
if err != nil {
1919
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
20-
os.Exit(1)
20+
} else {
21+
fmt.Printf("Got %v response\n", resp.StatusCode)
2122
}
2223

23-
fmt.Printf("Got %v response\n", resp.StatusCode)
24-
25-
time.Sleep(500 * time.Millisecond)
24+
time.Sleep(250 * time.Millisecond)
2625
}
2726

2827
}

test/fixtures/docker/java/Main.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,16 @@ public static void main(String[] argv) throws IOException, InterruptedException
99

1010
System.out.println("Starting Java container");
1111
while (true) {
12-
HttpURLConnection con = (HttpURLConnection) url.openConnection();
13-
con.setRequestMethod("GET");
14-
int status = con.getResponseCode();
15-
System.out.println("Got " + status + " response");
12+
try {
13+
HttpURLConnection con = (HttpURLConnection) url.openConnection();
14+
con.setRequestMethod("GET");
15+
int status = con.getResponseCode();
16+
System.out.println("Got " + status + " response");
17+
} catch (IOException e) {
18+
System.err.println("Error: " + e.getMessage());
19+
}
1620

17-
Thread.sleep(500);
21+
Thread.sleep(250);
1822
}
1923
}
2024
}

test/fixtures/docker/js/app.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@ const targetUrl = process.argv[2];
88
console.log('Starting JS container');
99

1010
while (true) {
11-
const response = await new Promise((resolve, reject) => {
12-
const req = https.get(targetUrl);
13-
req.on('response', resolve);
14-
req.on('error', reject);
15-
});
16-
console.log(`Got ${response.statusCode} response`);
11+
try {
12+
const response = await new Promise((resolve, reject) => {
13+
const req = https.get(targetUrl);
14+
req.on('response', resolve);
15+
req.on('error', reject);
16+
});
17+
console.log(`Got ${response.statusCode} response`);
18+
} catch (e) {
19+
console.error(`Error: ${e.message}`);
20+
}
1721

18-
await delay(500);
22+
await delay(250);
1923
}
2024
})();

test/fixtures/docker/python/app.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66

77
print('Starting Python container')
88
while True:
9-
resp = requests.get(targetUrl)
10-
print('Got {0} response'.format(resp.status_code))
11-
time.sleep(0.5)
9+
try:
10+
resp = requests.get(targetUrl)
11+
print('Got {0} response'.format(resp.status_code))
12+
except Exception as e:
13+
print('Error: {0}'.format(e), file=sys.stderr)
14+
time.sleep(0.25)

test/fixtures/docker/ruby/app.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
puts 'Starting Ruby container'
66

77
while true do
8-
res = Net::HTTP.get_response(target_uri)
9-
puts "Got #{res.code} response"
10-
sleep(0.5)
8+
begin
9+
res = Net::HTTP.get_response(target_uri)
10+
puts "Got #{res.code} response"
11+
rescue => e
12+
STDERR.puts "Error: #{e.message}"
13+
end
14+
sleep(0.25)
1115
end

test/integration/interceptors/docker-attachment.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import Docker from 'dockerode';
99
import fetch from 'node-fetch';
1010

1111
import { FIXTURES_DIR } from '../../test-util';
12-
import { setupInterceptor, itIsAvailable } from './interceptor-test-utils';
12+
import { setupInterceptor, itIsAvailable, itCanBeActivated } from './interceptor-test-utils';
1313
import { waitForDockerStream } from '../../../src/interceptors/docker/docker-utils';
1414

1515
const docker = new Docker();
@@ -109,6 +109,7 @@ describe('Docker single-container interceptor', function () {
109109
});
110110

111111
itIsAvailable(interceptorSetup);
112+
itCanBeActivated(interceptorSetup);
112113

113114
[
114115
'JS',

0 commit comments

Comments
 (0)