()
| 41 | |
| 42 | #[test] |
| 43 | fn 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 | } |
nothing calls this directly
no test coverage detected