Files
@ 2811715674ea
Branch filter:
Location: CSY/reowolf/src/runtime2/tests/error_handling.rs - annotation
2811715674ea
2.2 KiB
application/rls-services+xml
feat: tcp listener
1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 2811715674ea 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 2811715674ea 1f78496722d1 1f78496722d1 1f78496722d1 2811715674ea 1f78496722d1 1f78496722d1 2811715674ea 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 2811715674ea 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 2811715674ea 1f78496722d1 1f78496722d1 2811715674ea 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 2811715674ea 2811715674ea 2811715674ea 2811715674ea 1f78496722d1 2811715674ea 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 1f78496722d1 | use super::*;
#[test]
fn test_unconnected_component_error() {
compile_and_create_component("
comp 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("
comp crashing_and_burning(out<u32> unused) {
u8[] array = { 1337 };
auto value = array[1337];
}
comp sitting_idly_waiting(in<u32> never_providing) {
sync auto a = get(never_providing);
}
comp 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("
comp send_and_fail(out<u32> tx) {
u8[] array = {};
sync {
put(tx, 0);
array[0] = 5;
}
}
comp receive_once(in<u32> rx) {
sync auto a = get(rx);
}
comp 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("
comp put_and_fail(out<u8> tx) { sync put(tx, 1); u8 a = {}[0]; }
comp get_and_fail(in<u8> rx) { sync auto a = get(rx); u8 a = {}[0]; }
comp put_and_exit(out<u8> tx) { sync put(tx, 2); }
comp get_and_exit(in<u8> rx) { sync auto a = get(rx); }
comp 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());
}
|