mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
testing/btest: Log::delay() from JavaScript
This commit is contained in:
parent
dc487f04e4
commit
0a3d98973f
3 changed files with 60 additions and 0 deletions
4
testing/btest/Baseline/javascript.log-delay/.stdout
Normal file
4
testing/btest/Baseline/javascript.log-delay/.stdout
Normal file
|
@ -0,0 +1,4 @@
|
|||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||
1362692527.009775 delaying record
|
||||
1362692527.080972 delay finish
|
||||
1362692527.080972 HTTP::log_policy CHhAvVGS1DHFjwGM9 141.142.228.5 192.150.187.43 JS: after delay
|
3
testing/btest/Baseline/javascript.log-delay/http.log.cut
Normal file
3
testing/btest/Baseline/javascript.log-delay/http.log.cut
Normal file
|
@ -0,0 +1,3 @@
|
|||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||
ts uid id.orig_h id.resp_h new_field
|
||||
XXXXXXXXXX.XXXXXX CHhAvVGS1DHFjwGM9 141.142.228.5 192.150.187.43 JS: after delay
|
53
testing/btest/javascript/log-delay.js
Normal file
53
testing/btest/javascript/log-delay.js
Normal file
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* @TEST-DOC: Test delaying a log record from JavaScript
|
||||
* @TEST-REQUIRES: $SCRIPTS/have-javascript
|
||||
* @TEST-EXEC: zeek -b -Cr $TRACES/http/get.trace main.zeek exit_only_after_terminate=T
|
||||
* @TEST-EXEC: TEST_DIFF_CANONIFIER= btest-diff .stdout
|
||||
* @TEST-EXEC: zeek-cut -m ts uid id.orig_h id.resp_h new_field < http.log > http.log.cut
|
||||
* @TEST-EXEC: btest-diff http.log.cut
|
||||
*/
|
||||
@TEST-START-FILE main.zeek
|
||||
@load base/protocols/http
|
||||
|
||||
redef record HTTP::Info += {
|
||||
new_field: string &optional &log;
|
||||
};
|
||||
|
||||
# Load the JavaScript pieces
|
||||
@load ./main.js
|
||||
@TEST-END-FILE
|
||||
|
||||
@TEST-START-FILE main.js
|
||||
zeek.hook('Log::log_stream_policy', (rec, id) => {
|
||||
if ( id != "HTTP::LOG" )
|
||||
return;
|
||||
|
||||
let nt = zeek.invoke('network_time');
|
||||
console.log(nt, 'delaying record');
|
||||
|
||||
// Log::delay() of the in-flight write.
|
||||
let token = zeek.invoke('Log::delay', [id, rec]);
|
||||
|
||||
// 10msec delayed record enrichment
|
||||
setTimeout(() => {
|
||||
let nt = zeek.invoke('network_time');
|
||||
rec.new_field = "JS: after delay";
|
||||
console.log(nt, 'delay finish');
|
||||
zeek.invoke('Log::delay_finish', [id, rec, token]);
|
||||
|
||||
// Shutdown, too.
|
||||
zeek.invoke('terminate');
|
||||
}, 10);
|
||||
|
||||
});
|
||||
|
||||
zeek.hook('HTTP::log_policy', (rec, id, filter) => {
|
||||
let nt = zeek.invoke('network_time');
|
||||
console.log(nt, 'HTTP::log_policy', rec.uid, rec.id.orig_h, rec.id.resp_h, rec.new_field);
|
||||
});
|
||||
|
||||
setTimeout(() => {
|
||||
console.error('force exit');
|
||||
process.exit(1);
|
||||
}, 5000);
|
||||
@TEST-END-FILE
|
Loading…
Add table
Add a link
Reference in a new issue