package require ten
package require json::write
+if {[array names ::env PERL5LIB]==""} {
+ array set ::env [list PERL5LIB t/lib]
+} else {
+ array set ::env [list PERL5LIB "t/lib:$::env(PERL5LIB)"]
+}
+
set connector [ten::connector::perl %AUTO%]
set conn [$connector connect]
is $ready_args $my_host "hostname returned ok via on_ready"
+set ortestdata [[$conn send call {*}[jws class_call_handler 0 call ORTestClass new]] await_get]
+
+set ortestoid [lindex $ortestdata 0 1]
+
+proc ortest {args} {
+ return [[$::conn send call {*}[jws $::ortestoid 0 {*}$args]] await_get]
+}
+
+cmp_ok != [pid] [ortest pid] "pid is different on the other side"
+
+is [ortest counter] 0 "Counter at 0"
+
+is [ortest increment] 1 "Incrememt to 1"
+
+is [ortest counter] 1 "Counter at 1"
+
done_testing
--- /dev/null
+package ORTestClass;
+
+use Moo;
+
+has counter => (is => 'rwp', default => sub { 0 });
+
+sub increment { $_[0]->_set_counter($_[0]->counter + 1); }
+
+sub pid { $$ }
+
+sub call_callback {
+ my ($self, $value, $cb) = @_;
+ $cb->();
+ return $value;
+}
+
+1;
}
} else {
if [llength $options(-on_line_call)] {
- while {[llength [set line [gets $chan]]] > 0} {
+ while {[string length [set line [gets $chan]]] > 0} {
eval [concat $options(-on_line_call) [ list $line ]]
}
}