Skip to content

Commit 5e78cf8

Browse files
committed
Convert data collection
1 parent 253c907 commit 5e78cf8

File tree

28 files changed

+1365
-1959
lines changed

28 files changed

+1365
-1959
lines changed

runtime/cn-testing-rs/build.rs

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ fn main() {
1717
#ifndef BENNET_WRAPPER_H
1818
#define BENNET_WRAPPER_H
1919
20+
#include <stddef.h>
2021
#include <stdint.h>
2122
#include <stdbool.h>
2223
@@ -60,45 +61,8 @@ void bennet_set_size_split_backtracks_allowed(uint64_t allowed);
6061
enum bennet_failure_type bennet_failure_get_failure_type(void);
6162
void bennet_rand_alloc_set_mem_size(uint64_t size);
6263
63-
// Info collection functions
64-
void bennet_info_sizes_init(void);
65-
void bennet_info_sizes_set_function_under_test(const char* name);
66-
void bennet_info_sizes_log(void);
67-
void bennet_info_sizes_print_info(void);
68-
69-
void bennet_info_backtracks_init(void);
70-
void bennet_info_backtracks_set_function_under_test(const char* name);
71-
void bennet_info_backtracks_begin_run(void);
72-
void bennet_info_backtracks_end_run(_Bool);
73-
void bennet_info_backtracks_print_backtrack_info(void);
74-
75-
void bennet_info_unsatisfied_init(void);
76-
void bennet_info_unsatisfied_set_function_under_test(const char* name);
77-
void bennet_info_unsatisfied_begin_run(void);
78-
void bennet_info_unsatisfied_end_run(_Bool);
79-
void bennet_info_unsatisfied_print_info(void);
80-
81-
void bennet_info_discards_init(void);
82-
void bennet_info_discards_set_function_under_test(const char* name);
83-
void bennet_info_discards_log(enum bennet_failure_type);
84-
void bennet_info_discards_print_info(void);
85-
86-
void bennet_info_timing_init(void);
87-
void bennet_info_timing_set_function_under_test(const char* name);
88-
void bennet_info_timing_start(const char* label);
89-
void bennet_info_timing_end(const char* label);
90-
void bennet_info_timing_print_info(void);
91-
92-
struct tyche_line_info {
93-
char *test_suite;
94-
char *test_name;
95-
char *status;
96-
char *status_reason;
97-
uint64_t suite_begin_time;
98-
char *representation;
99-
};
100-
101-
void print_test_summary_tyche(FILE *out, struct tyche_line_info *line_info);
64+
// Ownership size function (for info/sizes.rs to call)
65+
size_t bennet_ownership_size(void);
10266
10367
#endif
10468
"#;

runtime/cn-testing-rs/cbindgen.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
language = "C"
22
# Note: Include guard is manually managed - opening in header, closing is added by dune after macros
3-
header = "#ifndef CN_TEST_H\n#define CN_TEST_H\n\n#include <bennet/prelude.h>"
3+
header = "#ifndef CN_TEST_H\n#define CN_TEST_H\n\n#include <bennet/prelude.h>\n#include <stdio.h>\ntypedef FILE cn_FILE;"
44
trailer = ""
55
# Don't use include_guard to avoid automatic #endif generation
66
no_includes = false
@@ -16,6 +16,7 @@ exclude = ["bennet_*", "cn_smt_*", "cn_replica_*", "fulminate_*"]
1616

1717
[export.rename]
1818
"bindings::bennet_sizing_strategy" = "enum bennet_sizing_strategy"
19+
"FILE" = "FILE"
1920

2021
[defines]
2122
"target_os = windows" = "CN_PLATFORM_WINDOWS"

runtime/cn-testing-rs/src/executor.rs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use libc::{c_char, c_int};
66
use std::ffi::CStr;
77
use crate::bindings;
88
use crate::cli::TestConfig;
9+
use crate::info;
910
use crate::registry;
1011
use crate::types::{CnTestInput, CnTestReproduction, CnTestResult, CN_TEST_MAX_TEST_CASES};
1112

@@ -29,23 +30,23 @@ pub unsafe extern "C" fn cn_test_main(argc: c_int, argv: *mut *mut c_char) -> c_
2930

3031
// Initialize info collection subsystems
3132
if config.output_tyche || config.print_size_info {
32-
bindings::bennet_info_sizes_init();
33+
info::bennet_info_sizes_init();
3334
}
3435

3536
if config.output_tyche || config.print_backtrack_info {
36-
bindings::bennet_info_backtracks_init();
37+
info::bennet_info_backtracks_init();
3738
}
3839

3940
if config.print_satisfaction_info {
40-
bindings::bennet_info_unsatisfied_init();
41+
info::bennet_info_unsatisfied_init();
4142
}
4243

4344
if config.print_discard_info {
44-
bindings::bennet_info_discards_init();
45+
info::bennet_info_discards_init();
4546
}
4647

4748
if config.output_tyche || config.print_timing_info {
48-
bindings::bennet_info_timing_init();
49+
info::bennet_info_timing_init();
4950
}
5051

5152
// Print initial info
@@ -103,23 +104,23 @@ pub unsafe extern "C" fn cn_test_main(argc: c_int, argv: *mut *mut c_char) -> c_
103104

104105
// Set function under test for info collection
105106
if config.output_tyche || config.print_size_info {
106-
bindings::bennet_info_sizes_set_function_under_test(test_case.name);
107+
info::bennet_info_sizes_set_function_under_test(test_case.name);
107108
}
108109

109110
if config.output_tyche || config.print_backtrack_info {
110-
bindings::bennet_info_backtracks_set_function_under_test(test_case.name);
111+
info::bennet_info_backtracks_set_function_under_test(test_case.name);
111112
}
112113

113114
if config.print_satisfaction_info {
114-
bindings::bennet_info_unsatisfied_set_function_under_test(test_case.name);
115+
info::bennet_info_unsatisfied_set_function_under_test(test_case.name);
115116
}
116117

117118
if config.print_discard_info {
118-
bindings::bennet_info_discards_set_function_under_test(test_case.name);
119+
info::bennet_info_discards_set_function_under_test(test_case.name);
119120
}
120121

121122
if config.output_tyche || config.print_timing_info {
122-
bindings::bennet_info_timing_set_function_under_test(test_case.name);
123+
info::bennet_info_timing_set_function_under_test(test_case.name);
123124
}
124125

125126
// Print initial test info
@@ -281,27 +282,27 @@ pub unsafe extern "C" fn cn_test_main(argc: c_int, argv: *mut *mut c_char) -> c_
281282
// Print info if requested
282283
if config.print_size_info {
283284
println!();
284-
bindings::bennet_info_sizes_print_info();
285+
info::bennet_info_sizes_print_info();
285286
}
286287

287288
if config.print_backtrack_info {
288289
println!();
289-
bindings::bennet_info_backtracks_print_backtrack_info();
290+
info::bennet_info_backtracks_print_backtrack_info();
290291
}
291292

292293
if config.print_satisfaction_info {
293294
println!();
294-
bindings::bennet_info_unsatisfied_print_info();
295+
info::bennet_info_unsatisfied_print_info();
295296
}
296297

297298
if config.print_discard_info {
298299
println!();
299-
bindings::bennet_info_discards_print_info();
300+
info::bennet_info_discards_print_info();
300301
}
301302

302303
if config.print_timing_info {
303304
println!();
304-
bindings::bennet_info_timing_print_info();
305+
info::bennet_info_timing_print_info();
305306
}
306307

307308
// Return non-zero exit code if there were failures or errors

0 commit comments

Comments
 (0)