Files
@ a1b2108ed856
Branch filter:
Location: CSY/reowolf/src/runtime2/tests/transfer_ports.rs - annotation
a1b2108ed856
2.9 KiB
application/rls-services+xml
Prepare fixing another blocking/transfer bug
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | ebea15dffde4 ebea15dffde4 ebea15dffde4 935c576f54d0 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 ebea15dffde4 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 cdb4810532c2 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 cdb4810532c2 cdb4810532c2 cdb4810532c2 cdb4810532c2 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 cdb4810532c2 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 a1b2108ed856 ebea15dffde4 | use super::*;
#[test]
fn test_transfer_precreated_port_with_owned_peer() {
compile_and_create_component("
primitive port_sender(out<in<u32>> tx) {
channel a -> b;
sync put(tx, b);
}
primitive port_receiver(in<in<u32>> rx) {
sync auto a = get(rx);
}
composite constructor() {
channel a -> b;
new port_sender(a);
new port_receiver(b);
}
", "constructor", no_args());
}
#[test]
fn test_transfer_precreated_port_with_foreign_peer() {
compile_and_create_component("
primitive port_sender(out<in<u32>> tx, in<u32> to_send) {
sync put(tx, to_send);
}
primitive port_receiver(in<in<u32>> rx) {
sync auto a = get(rx);
}
composite constructor() {
channel tx -> rx;
channel forgotten -> to_send;
new port_sender(tx, to_send);
new port_receiver(rx);
}
", "constructor", no_args());
}
#[test]
fn test_transfer_synccreated_port() {
compile_and_create_component("
primitive port_sender(out<in<u32>> tx) {
sync {
channel a -> b;
put(tx, b);
}
}
primitive port_receiver(in<in<u32>> rx) {
sync auto a = get(rx);
}
composite constructor() {
channel a -> b;
new port_sender(a);
new port_receiver(b);
}
", "constructor", no_args());
}
#[test]
fn test_transfer_precreated_port_with_owned_peer_back_and_forth() {
}
#[test]
fn test_transfer_precreated_port_with_foreign_peer_back_and_forth() {
}
#[test]
fn test_transfer_precreated_port_with_owned_peer_and_communication() {
compile_and_create_component("
primitive port_sender(out<in<u32>> tx) {
channel a -> b;
sync put(tx, b);
sync put(a, 1337);
}
primitive port_receiver(in<in<u32>> rx) {
channel a -> b; // this is stupid, but we need to have a variable to use
sync b = get(rx);
u32 value = 0;
sync value = get(b);
while (value != 1337) {}
}
composite constructor() {
channel a -> b;
new port_sender(a);
new port_receiver(b);
}
", "constructor", no_args());
}
#[test]
fn test_transfer_precreated_port_with_foreign_peer_and_communication() {
compile_and_create_component("
primitive port_sender(out<in<u32>> tx, in<u32> to_send) {
sync put(tx, to_send);
}
primitive message_transmitter(out<u32> tx) {
sync put(tx, 1337);
}
primitive port_receiver(in<in<u32>> rx) {
channel unused -> b;
sync b = get(rx);
u32 value = 0;
sync value = get(b);
while (value != 1337) {}
}
composite constructor() {
channel port_tx -> port_rx;
channel value_tx -> value_rx;
new port_sender(port_tx, value_rx);
new port_receiver(port_rx);
new message_transmitter(value_tx);
}
", "constructor", no_args());
}
|