![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/share/emscripten/tests/ |
Upload File : |
#include<stdio.h> #include<emscripten.h> #include<assert.h> #include<string.h> #include<SDL/SDL.h> #include"SDL/SDL_image.h" extern "C" { int result = 1; int get_count = 0; int data_ok = 0; int data_bad = 0; void onLoadedData(void *arg, void *buffer, int size) { printf("onLoadedData %d\n", (int)arg); get_count++; assert(size == 329895); assert((int)arg == 135); unsigned char *b = (unsigned char*)buffer; assert(b[0] == 137); assert(b[1122] == 128); assert(b[1123] == 201); assert(b[202125] == 218); data_ok = 1; } void onErrorData(void *arg) { printf("onErrorData %d\n", (int)arg); get_count++; assert((int)arg == 246); data_bad = 1; } int counter = 0; void wait_wgets() { if (counter++ == 60) { printf("%d\n", get_count); counter = 0; } if (get_count == 3) { static bool fired = false; if (!fired) { fired = true; emscripten_async_wget_data( "http://localhost:8888/screenshot.png", (void*)135, onLoadedData, onErrorData); emscripten_async_wget_data( "http://localhost:8888/fail_me", (void*)246, onLoadedData, onErrorData); } } else if (get_count == 5) { assert(IMG_Load("/tmp/screen_shot.png")); assert(data_ok == 1 && data_bad == 1); emscripten_cancel_main_loop(); REPORT_RESULT(); } assert(get_count <= 5); } void onLoaded(const char* file) { if (strcmp(file, "/tmp/test.html") && strcmp(file, "/tmp/screen_shot.png")) { result = 0; } if (FILE * f = fopen(file, "r")) { printf("exists: %s\n", file); int c = fgetc (f); if (c == EOF) { printf("file empty: %s\n", file); result = 0; } fclose(f); } else { result = 0; printf("!exists: %s\n", file); } get_count++; printf("onLoaded %s\n", file); } void onError(const char* file) { if (strcmp(file, "/tmp/null")) { result = 0; } get_count++; printf("onError %s\n", file); } int main() { emscripten_async_wget( "http://localhost:8888/this_is_not_a_file", "/tmp/null", onLoaded, onError); emscripten_async_wget( "http://localhost:8888/test.html", "/tmp/test.html", onLoaded, onError); char name[40]; strcpy(name, "/tmp/screen_shot.png"); // test for issue #2349, name being free'd emscripten_async_wget( "http://localhost:8888/screenshot.png", name, onLoaded, onError); memset(name, 0, 30); emscripten_set_main_loop(wait_wgets, 0, 0); return 0; } }