mod client;
mod store;
use trussed::{
client::CounterClient as _,
syscall,
types::Location::*,
};
#[test]
fn counter_client() {
client::get(|client| {
let id = syscall!(client.create_counter(Volatile)).id;
assert_eq!(syscall!(client.increment_counter(id)).counter, 0);
assert_eq!(syscall!(client.increment_counter(id)).counter, 1);
assert_eq!(syscall!(client.increment_counter(id)).counter, 2);
let jd = syscall!(client.create_counter(External)).id;
assert_eq!(syscall!(client.increment_counter(jd)).counter, 0);
assert_eq!(syscall!(client.increment_counter(jd)).counter, 1);
assert_eq!(syscall!(client.increment_counter(id)).counter, 3);
for i in 4..1_000 {
assert_eq!(syscall!(client.increment_counter(id)).counter, i);
}
for j in 2..1_000 {
assert_eq!(syscall!(client.increment_counter(jd)).counter, j);
}
});
}