implement fuzzing for component types (#4537)
This addresses #4307. For the static API we generate 100 arbitrary test cases at build time, each of which includes 0-5 parameter types, a result type, and a WAT fragment containing an imported function and an exported function. The exported function calls the imported function, which is implemented by the host. At runtime, the fuzz test selects a test case at random and feeds it zero or more sets of arbitrary parameters and results, checking that values which flow host-to-guest and guest-to-host make the transition unchanged. The fuzz test for the dynamic API follows a similar pattern, the only difference being that test cases are generated at runtime. Signed-off-by: Joel Dice <joel.dice@fermyon.com>
This commit is contained in:
@@ -885,7 +885,10 @@ impl Expander for ComponentTypeExpander {
|
||||
const SIZE32: usize = {
|
||||
let mut size = 0;
|
||||
#sizes
|
||||
#internal::align_to(#discriminant_size as usize, Self::ALIGN32) + size
|
||||
#internal::align_to(
|
||||
#internal::align_to(#discriminant_size as usize, Self::ALIGN32) + size,
|
||||
Self::ALIGN32
|
||||
)
|
||||
};
|
||||
|
||||
const ALIGN32: u32 = {
|
||||
|
||||
Reference in New Issue
Block a user