Files
fivenode_go/capi/napi_fuzz.prg
2026-06-16 10:14:54 +09:00

37 lines
1.2 KiB
Plaintext

FUNCTION FN_HANDLE()
LOCAL hReq := hb_jsonDecode( FN_NAPI_REQ() )
LOCAL cPath := hb_HGetDef( hReq, "path", "" )
LOCAL oF := FN_REQUIRE( "/Users/charleskwon/fivenode/fivenode/fivenode/napi/test/fuzzmod" )
LOCAL xR := NIL
LOCAL cErr := ""
LOCAL oErr
IF ! HB_ISOBJECT( oF )
RETURN hb_jsonEncode( { "err" => FN_LASTERROR() } )
ENDIF
BEGIN SEQUENCE
DO CASE
CASE cPath == "/big1m"
xR := oF:big( 1000000 )
CASE cPath == "/big200k"
xR := oF:big( 200000 )
CASE cPath == "/echo1m"
xR := oF:echo( Replicate( "y", 1000000 ) )
CASE cPath == "/unicode"
xR := oF:unicode()
CASE cPath == "/binary"
xR := oF:binary()
OTHERWISE
xR := "noop"
ENDCASE
RECOVER USING oErr
cErr := IIF( HB_ISOBJECT( oErr ), oErr:Description, hb_CStr( oErr ) )
END SEQUENCE
RETURN hb_jsonEncode( { ;
"status" => 200, ;
"headers" => { "Content-Type" => "application/json" }, ;
"body" => hb_jsonEncode( { ;
"type" => ValType( xR ), ;
"len" => IIF( xR == NIL, -1, Len( hb_CStr( xR ) ) ), ;
"head" => Left( hb_CStr( xR ), 30 ), ;
"err" => cErr } ) } )