From 26e099eb12b2d0e3f583e245497e10369aaecb04 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 3 Jun 2022 06:08:57 -0400 Subject: [PATCH] broken tests --- tests/remove_input.rs | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 tests/remove_input.rs diff --git a/tests/remove_input.rs b/tests/remove_input.rs new file mode 100644 index 00000000..da77592a --- /dev/null +++ b/tests/remove_input.rs @@ -0,0 +1,48 @@ +//! Test that transparent (uncached) queries work + +#[salsa::query_group(QueryGroupStorage)] +trait QueryGroup { + #[salsa::input] + fn input(&self, c: char) -> u32; + + fn increment(&self, c: char) -> u32; +} + +fn increment(db: &dyn QueryGroup, c: char) -> u32 { + db.input(c) + 1 +} + +#[salsa::database(QueryGroupStorage)] +#[derive(Default)] +struct Database { + storage: salsa::Storage, +} + +impl salsa::Database for Database {} + +#[test] +fn remove_input_from_cached_query() { + let mut db = Database::default(); + + db.set_input('a', 22); + db.set_input('b', 44); + assert_eq!(db.increment('a'), 23); + assert_eq!(db.increment('b'), 45); + + db.remove_input('a'); + assert_eq!(db.increment('b'), 45); +} + +#[test] +fn remove_and_restore_input_from_cached_query() { + let mut db = Database::default(); + + db.set_input('a', 22); + db.set_input('b', 44); + assert_eq!(db.increment('a'), 23); + assert_eq!(db.increment('b'), 45); + + db.remove_input('a'); + db.set_input('a', 66); + assert_eq!(db.increment('a'), 67); +}