set tag "numeric"
eval spawn stap $srcdir/$subdir/num_args.stp
expect {
    -timeout 120
    "READY" {
	exec echo 1 > /proc/stap_test_cmd
	expect {
	    -timeout 5
	    "yyy_int -1 200 300\r\nyyy_int returns 499\r\n" {
		pass "integer function arguments -- $tag"
	    }
	    timeout {fail "integer function arguments -- $tag"}
	}
	exec echo 2 > /proc/stap_test_cmd
	expect {
	    -timeout 5
	    "yyy_uint 4294967295 200 300\r\nyyy_uint returns 499\r\n" {
		pass "unsigned function arguments -- $tag"
	    }
	    timeout {fail "unsigned function arguments -- $tag"}
	}
	exec echo 3 > /proc/stap_test_cmd
	expect {
	    -timeout 5
	    "yyy_long -1 200 300\r\nyyy_long returns 499\r\n" {
		pass "long function arguments -- $tag"
	    }
	    timeout {fail "long function arguments -- $tag"}
	}
	exec echo 4 > /proc/stap_test_cmd
	expect {
	    -timeout 5
	    "yyy_int64 -1 200 300\r\nyyy_int64 returns 499\r\n" {
		pass "int64 function arguments -- $tag"
	    }
	    timeout {fail "int64 function arguments -- $tag"}
	}
	exec echo 5 > /proc/stap_test_cmd
	expect {
	    -timeout 5
	    "yyy_char a b c\r\nyyy_char returns Q\r\n" {
		pass "char function arguments -- $tag"
	    }
	    timeout {fail "char function arguments -- $tag"}
	}
	exec echo 6 > /proc/stap_test_cmd
	expect {
	    -timeout 5
	    "yyy_str Hello-System-Tap\r\nyyy_str returns XYZZY\r\n" {
		pass "string function arguments -- $tag"
	    }
	    timeout {fail "string function arguments -- $tag"}
	    eof {fail "string function arguments -- $tag"}
	}
    }
    -re "semantic error:" {
	fail "function arguments -- $tag: compilation failed"
    }
    timeout {fail "all function arguments tests - timeout"}
    eof {fail "function arguments -- $tag: unexpected timeout"}
}
kill -INT -[exp_pid] 2
catch close
wait
