114 lines
4.1 KiB
Julia
114 lines
4.1 KiB
Julia
|
using Base.Test
|
||
|
require("OSC")
|
||
|
|
||
|
test_type = length(ARGS) == 1 ? ARGS[1] : "ALL"
|
||
|
|
||
|
|
||
|
#buffer = Array(Uint8,1024)
|
||
|
#buf_size = rtosc_amessage(buffer, 1024, "/random/address", "sif",
|
||
|
# "string", 0xdeadbeef, float32(12.0))
|
||
|
#println()
|
||
|
##println(buffer)
|
||
|
#println(string(map(x->(hex(x,2)), buffer[1:buf_size])...))
|
||
|
#println(string(map(x->(isprint(char(x&0x7f)) ? string(char(x&0x7f)," ") : ". "), buffer[1:buf_size])...))
|
||
|
#println("argument string is=", rtosc_argument_string(buffer))
|
||
|
#
|
||
|
#println("arg 0=", rtosc_argument(buffer, 0))
|
||
|
#println("arg 1=", rtosc_argument(buffer, 1))
|
||
|
#println("arg 2=", rtosc_argument(buffer, 2))
|
||
|
|
||
|
#Fully check basics
|
||
|
function test_it_fat()
|
||
|
i::Int32 = 42; #integer
|
||
|
f::Float32 = 0.25; #float
|
||
|
s::ASCIIString = "string"; #string
|
||
|
b = s; #blob
|
||
|
h::Int64 = -125; #long integer
|
||
|
t::Uint64 = 22412; #timetag
|
||
|
d::Float64 = 0.125; #double
|
||
|
S::ASCIIString = "Symbol"; #symbol
|
||
|
c::Char = 'J'; #character
|
||
|
r::Int32 = 0x12345678; #RGBA
|
||
|
m::Array{Uint8,1} = [0x12,0x23, #midi
|
||
|
0x34,0x45];
|
||
|
#true
|
||
|
#false
|
||
|
#nil
|
||
|
#inf
|
||
|
|
||
|
buffer = Array(Uint8, 1024);
|
||
|
len = OSC.rtosc_amessage(buffer, 1024, "/dest",
|
||
|
"[ifsbhtdScrmTFNI]", i,f,s,b,h,t,d,S,c,r,m);
|
||
|
|
||
|
#println(string(map(x->(hex(x,2)), buffer[1:len])...))
|
||
|
#println(string(map(x->(isprint(char(x&0x7f)) ? string(char(x&0x7f)," ") : ". "), buffer[1:len])...))
|
||
|
#println("argument string is=", rtosc_argument_string(buffer))
|
||
|
|
||
|
@test OSC.rtosc_argument(buffer, 0) == i
|
||
|
@test OSC.rtosc_argument(buffer, 1) == f
|
||
|
@test OSC.rtosc_argument(buffer, 2) == s
|
||
|
@test OSC.stringify(OSC.rtosc_argument(buffer, 3)) == b
|
||
|
@test OSC.rtosc_argument(buffer, 4) == h
|
||
|
@test OSC.rtosc_argument(buffer, 5) == t
|
||
|
@test OSC.rtosc_argument(buffer, 6) == d
|
||
|
@test OSC.rtosc_argument(buffer, 7) == S
|
||
|
@test OSC.rtosc_argument(buffer, 8) == c
|
||
|
@test OSC.rtosc_argument(buffer, 9) == r
|
||
|
@test OSC.rtosc_argument(buffer, 10) == m
|
||
|
@test OSC.rtosc_type(buffer,11) == 'T'
|
||
|
@test OSC.rtosc_type(buffer,12) == 'F'
|
||
|
@test OSC.rtosc_type(buffer,13) == 'N'
|
||
|
@test OSC.rtosc_type(buffer,14) == 'I'
|
||
|
end
|
||
|
|
||
|
function test_it_osc_spec()
|
||
|
buffer::Array{Uint8} = Array(Uint8, 256)
|
||
|
println("Starting OSC Spec...")
|
||
|
message_one::Array{Uint8} = [
|
||
|
0x2f, 0x6f, 0x73, 0x63,
|
||
|
0x69, 0x6c, 0x6c, 0x61,
|
||
|
0x74, 0x6f, 0x72, 0x2f,
|
||
|
0x34, 0x2f, 0x66, 0x72,
|
||
|
0x65, 0x71, 0x75, 0x65,
|
||
|
0x6e, 0x63, 0x79, 0x00,
|
||
|
0x2c, 0x66, 0x00, 0x00,
|
||
|
0x43, 0xdc, 0x00, 0x00,
|
||
|
];
|
||
|
|
||
|
message_two::Array{Uint8} = [
|
||
|
0x2f, 0x66, 0x6f, 0x6f,
|
||
|
0x00, 0x00, 0x00, 0x00,
|
||
|
0x2c, 0x69, 0x69, 0x73,
|
||
|
0x66, 0x66, 0x00, 0x00,
|
||
|
0x00, 0x00, 0x03, 0xe8,
|
||
|
0xff, 0xff, 0xff, 0xff,
|
||
|
0x68, 0x65, 0x6c, 0x6c,
|
||
|
0x6f, 0x00, 0x00, 0x00,
|
||
|
0x3f, 0x9d, 0xf3, 0xb6,
|
||
|
0x40, 0xb5, 0xb2, 0x2d,
|
||
|
];
|
||
|
|
||
|
len=OSC.rtosc_amessage(buffer, 256, "/oscillator/4/frequency", "f", float32(440.0))
|
||
|
|
||
|
println(string(map(x->(hex(x,2)), buffer[1:len])...))
|
||
|
println(string(map(x->(hex(x,2)), message_one)...))
|
||
|
println(string(map(x->(isprint(char(x&0x7f)) ? string(char(x&0x7f)," ") : ". "), buffer[1:len])...))
|
||
|
println(string(map(x->(isprint(char(x&0x7f)) ? string(char(x&0x7f)," ") : ". "), message_one)...))
|
||
|
@test len == length(message_one)
|
||
|
@test buffer[1:length(message_one)] == message_one
|
||
|
|
||
|
len = OSC.rtosc_amessage(buffer, 256, "/foo", "iisff",
|
||
|
1000, -1, "hello", float32(1.234), float32(5.678))
|
||
|
println(string(map(x->(hex(x,2)), buffer[1:len])...))
|
||
|
println(string(map(x->(hex(x,2)), message_two)...))
|
||
|
println(string(map(x->(isprint(char(x&0x7f)) ? string(char(x&0x7f)," ") : ". "), buffer[1:len])...))
|
||
|
println(string(map(x->(isprint(char(x&0x7f)) ? string(char(x&0x7f)," ") : ". "), message_two)...))
|
||
|
@test len == length(message_two)
|
||
|
@test buffer[1:len] == message_two
|
||
|
end
|
||
|
|
||
|
if test_type in ["ALL", "TEST", "INSTALL"]
|
||
|
test_it_osc_spec()
|
||
|
test_it_fat()
|
||
|
end
|