Files
@ eba98ee7ffd6
Branch filter:
Location: CSY/reowolf/src/runtime2/tests/error_handling.rs - annotation
eba98ee7ffd6
2.3 KiB
application/rls-services+xml
Simplify use of port management
e7e7211531c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 8ec435d9b2c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 8ec435d9b2c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 8ec435d9b2c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 e7e7211531c8 9936bb801409 eba98ee7ffd6 eba98ee7ffd6 eba98ee7ffd6 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 8ec435d9b2c8 9936bb801409 9936bb801409 9936bb801409 9936bb801409 8ec435d9b2c8 8ec435d9b2c8 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 9936bb801409 e7e7211531c8 | use super::*;
#[test]
fn test_unconnected_component_error() {
compile_and_create_component("
primitive interact_with_noone() {
u8[] array = { 5 };
auto value = array[1];
}", "interact_with_noone", no_args());
}
#[test]
fn test_connected_uncommunicating_component_error() {
compile_and_create_component("
primitive crashing_and_burning(out<u32> unused) {
u8[] array = { 1337 };
auto value = array[1337];
}
primitive sitting_idly_waiting(in<u32> never_providing) {
sync auto a = get(never_providing);
}
composite constructor() {
// Test one way
// channel a -> b;
// new sitting_idly_waiting(b);
// new crashing_and_burning(a);
// And the other way around
channel c -> d;
new crashing_and_burning(c);
new sitting_idly_waiting(d);
}", "constructor", no_args())
}
#[test]
fn test_connected_communicating_component_error() {
compile_and_create_component("
primitive send_and_fail(out<u32> tx) {
u8[] array = {};
sync {
put(tx, 0);
array[0] = 5;
}
}
primitive receive_once(in<u32> rx) {
sync auto a = get(rx);
}
composite constructor() {
channel a -> b;
new send_and_fail(a);
new receive_once(b);
channel c -> d;
new receive_once(d);
new send_and_fail(c);
}
", "constructor", no_args())
}
#[test]
fn test_failing_after_successful_sync() {
compile_and_create_component("
primitive put_and_fail(out<u8> tx) { sync put(tx, 1); u8 a = {}[0]; }
primitive get_and_fail(in<u8> rx) { sync auto a = get(rx); u8 a = {}[0]; }
primitive put_and_exit(out<u8> tx) { sync put(tx, 2); }
primitive get_and_exit(in<u8> rx) { sync auto a = get(rx); }
composite constructor() {
{
channel a -> b;
new put_and_fail(a);
new get_and_exit(b);
}
{
channel a -> b;
new get_and_exit(b);
new put_and_fail(a);
}
{
channel a -> b;
new put_and_exit(a);
new get_and_fail(b);
}
{
channel a -> b;
new get_and_fail(b);
new put_and_exit(a);
}
}
", "constructor", no_args());
}
|