MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / test_write_read_cache

Function test_write_read_cache

crates/cache/src/tests.rs:43–90  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

41
42#[test]
43fn test_write_read_cache() {
44 let (_tempdir, cache_dir, config_path) = test_prolog();
45 let cache_config = load_config!(
46 config_path,
47 "[cache]\n\
48 directory = '{cache_dir}'\n\
49 baseline-compression-level = 3\n",
50 cache_dir
51 );
52 let cache = Cache::new(cache_config.clone()).unwrap();
53
54 // assumption: config load creates cache directory and returns canonicalized path
55 assert_eq!(
56 cache_config.directory(),
57 Some(&fs::canonicalize(cache_dir).unwrap())
58 );
59
60 let compiler1 = "test-1";
61 let compiler2 = "test-2";
62
63 let entry1 = ModuleCacheEntry::from_inner(ModuleCacheEntryInner::new(compiler1, &cache));
64 let entry2 = ModuleCacheEntry::from_inner(ModuleCacheEntryInner::new(compiler2, &cache));
65
66 entry1.get_data::<_, i32, i32>(1, |_| Ok(100)).unwrap();
67 entry1.get_data::<_, i32, i32>(1, |_| panic!()).unwrap();
68
69 entry1.get_data::<_, i32, i32>(2, |_| Ok(100)).unwrap();
70 entry1.get_data::<_, i32, i32>(1, |_| panic!()).unwrap();
71 entry1.get_data::<_, i32, i32>(2, |_| panic!()).unwrap();
72
73 entry1.get_data::<_, i32, i32>(3, |_| Ok(100)).unwrap();
74 entry1.get_data::<_, i32, i32>(1, |_| panic!()).unwrap();
75 entry1.get_data::<_, i32, i32>(2, |_| panic!()).unwrap();
76 entry1.get_data::<_, i32, i32>(3, |_| panic!()).unwrap();
77
78 entry1.get_data::<_, i32, i32>(4, |_| Ok(100)).unwrap();
79 entry1.get_data::<_, i32, i32>(1, |_| panic!()).unwrap();
80 entry1.get_data::<_, i32, i32>(2, |_| panic!()).unwrap();
81 entry1.get_data::<_, i32, i32>(3, |_| panic!()).unwrap();
82 entry1.get_data::<_, i32, i32>(4, |_| panic!()).unwrap();
83
84 entry2.get_data::<_, i32, i32>(1, |_| Ok(100)).unwrap();
85 entry1.get_data::<_, i32, i32>(1, |_| panic!()).unwrap();
86 entry1.get_data::<_, i32, i32>(2, |_| panic!()).unwrap();
87 entry1.get_data::<_, i32, i32>(3, |_| panic!()).unwrap();
88 entry1.get_data::<_, i32, i32>(4, |_| panic!()).unwrap();
89 entry2.get_data::<_, i32, i32>(1, |_| panic!()).unwrap();
90}

Callers

nothing calls this directly

Calls 5

test_prologFunction · 0.85
OkFunction · 0.85
newFunction · 0.50
unwrapMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected