proto main 0;; #include "../../ext/bytecode/lib/util" #include "../../bytecode/lib/data_helper" #include "../../bytecode/lib/buffer" #include "./helper" //-------------------- MAIN fun main= let test "strcmp" -> t in ( assert_equalI 0 strcmp "" ""; assert_equalI 0 strcmp "T" "T"; assert_equalI -1 strcmp "T" "To"; assert_equalI -1 strcmp "T" "t"; assert_equalI 1 strcmp "t" "T"; assert_equalI 1 strcmp "To" "Tb"; 0); let test "itoa" -> t in ( assert_equalS "0" itoa 0; assert_equalS "51" itoa 51; assert_equalS "255" itoa 255; assert_equalS "25500" itoa 25500; 0); let test "itoh" -> t in ( assert_equalS "0" itoh 0; assert_equalS "33" itoh 51; // 51 -> hex == 33 assert_equalS "ff" itoh 255; // 255 -> hex == ff assert_equalS "3e517" itoh 255255; // 255255 -> hex == 3e517 0); let test "ctoa" -> t in ( assert_equalS "\0" ctoa 0; assert_equalS "\51" ctoa 51; assert_equalS "\255" ctoa 255; 0); let test "webmac" -> t in ( assert_equalS "0100" webmac "\1\0"; assert_equalS "0a00" webmac "\10\0"; assert_equalS "00ff" webmac "\0\255"; assert_equalS "ff00" webmac "\255\0"; 0); let test "StoI3" -> t in ( assert_equalI 0 StoI3 "\0\0\0dummy" ; assert_equalI 0 StoI3 "\0\0\0" ; assert_equalI 255 StoI3 "\0\0\255"; assert_equalI 65280 StoI3 "\0\255\0"; assert_equalI 6579300 StoI3 "\100\100\100"; assert_equalI 16711680 StoI3 "\255\0\0"; assert_equalI 16777215 StoI3 "\255\255\255"; 0); let test "StoI2" -> t in ( assert_equalI 0 StoI2 "\0\0\0" ; assert_equalI 0 StoI2 "\0\0\255"; assert_equalI 255 StoI2 "\0\255\0"; 0); let test "StoI" -> t in ( assert_equalI 0 StoI "\0\0\0" ; assert_equalI 255 StoI "\0\0\255"; assert_equalI 65280 StoI "\0\255\0"; 0); let test "str_find_end" -> t in ( assert_equalI nil str_find_end "" ; assert_equalI 0 str_find_end "\255\0\0" ; assert_equalI 2 str_find_end "AB\255"; assert_equalI 10 str_find_end "0123456789\255"; 0); let test "find RIFID id" -> t in ( assert_equalI 0 strstr "\208\2\26\1\1\1\1\1" "\208\2\26" 0; assert_equalI 1 strstr "\1\208\2\26\1\1\1\1" "\208\2\26" 0; assert_equalI nil strstr "\1\208\1\26\1\1\1\1" "\208\2\26" 0; 0); let test "COtoI" -> t in ( assert_equalI 0 COtoI 0 0 0; assert_equalI 51 COtoI 1 2 3; assert_equalI 121 COtoI 3 2 1; assert_equalI 215 COtoI 5 5 5; 0); let test "ItoCO" -> t in ( assert_equalI 0x000000 ItoCO nil; assert_equalI 0x000000 ItoCO 0; assert_equalI 0x5a82aa ItoCO 51; assert_equalI 0xaa825a ItoCO 121; assert_equalI 0xFFFFFF ItoCO 215; assert_equalI 0xFFFFFF ItoCO 255; 0); let test "CtoI3" -> t in ( assert_equalI 0 CtoI3 "\0\0\0" 0; assert_equalI 255 CtoI3 "\0\0\255" 0; assert_equalI 65535 CtoI3 "\0\255\255" 0; assert_equalI 16776959 CtoI3 "\0\255\255" 1; 0); let test "parseResponse" -> t in ( assert_nil parseResponse "\127"; assert_nil parseResponse "\122"; assert_equalTL [11 "1"]::[10 "123"]::nil parseResponse "\127\10\0\0\3\49\50\51\11\0\0\1\49"; assert_equalTL [11 "1"]::[10 "123"]::nil parseResponse "\127\10\0\0\3\49\50\51\11\0\0\2\49"; assert_equalTL [51 "\2\49"]::[10 "12"]::nil parseResponse "\127\10\0\0\2\49\50\51\11\0\0\2\49"; //TODO check last ending byte 0); buffersInit 1; let test "bufferFill" -> t in ( bufferFill 0 "\0\255"; let buffers.0 -> buffer in ( assert_equalS "\0\255" buffer.valB; assert_equalI 2 buffer.lenB; assert_equalI 1 buffer.stepB; assert_equalI 0 buffer.posB; assert_equalI 0 buffer.loopB; 0); 0); let test "bufferRead" -> t in ( assert_equalI 0 bufferRead 0; assert_equalI 0xFF bufferRead 0; assert_nil bufferRead 0; 0); let test "bufferFill3" -> t in ( bufferFill3 0 "\0\0\0\255\255\255"; let buffers.0 -> buffer in ( assert_equalS "\0\0\0\255\255\255" buffer.valB; assert_equalI 6 buffer.lenB; assert_equalI 3 buffer.stepB; assert_equalI 0 buffer.posB; assert_equalI 0 buffer.loopB; 0); 0); let test "bufferRead3" -> t in ( assert_equalI 0 bufferRead 0; assert_equalI 0xFFFFFF bufferRead 0; assert_nil bufferRead 0; 0); //-------- Loop let test "loopBufferFill" -> t in ( loopBufferFill 0 "\0\255\32"; let buffers.0 -> buffer in ( assert_equalI 0 buffer.posB; assert_equalI 1 buffer.loopB; 0); 0); let test "loopBufferRead" -> t in ( assert_equalI 0 bufferRead 0; assert_equalI 0xFF bufferRead 0; assert_equalI 0x20 bufferRead 0; assert_equalI 0 bufferRead 0; assert_equalI 0xFF bufferRead 0; 0); let test "bufferFill3" -> t in ( loopBufferFill3 0 "\0\0\0\255\255\255"; let buffers.0 -> buffer in ( assert_equalI 0 buffer.posB; assert_equalI 1 buffer.loopB; 0); 0); let test "bufferRead3" -> t in ( assert_equalI 0 bufferRead 0; assert_equalI 0xFFFFFF bufferRead 0; assert_equalI 0 bufferRead 0; assert_equalI 0xFFFFFF bufferRead 0; 0); let test "log" -> t in ( log "test" {1}; assert_equalS "test,0,1,|" logs; log "test" {56 67 90}; assert_equalS "test,0,1,|test,0,56,67,90,|" logs; 0); exit; 0;;