1
0

tests.inc 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #define Y_UTILS_NO_VALUE
  2. #define Y_UTILS_VALUE (42)
  3. #define Y_UTILS_INVALID (999999)
  4. static stock
  5. gCalls_y_utils_va_return;
  6. forward y_utils_va_return(str[]);
  7. public y_utils_va_return(str[])
  8. {
  9. ASSERT(!strcmp(str, "Hello World 42 9.455"));
  10. ++gCalls_y_utils_va_return;
  11. }
  12. Test:y_utils_va_return()
  13. {
  14. gCalls_y_utils_va_return = 0;
  15. y_utils_va_return(va_return("Hello %s %d %.3f", "World", 42, 9.4554));
  16. CallLocalFunction("y_utils_va_return", "s", va_return("Hello %s %d %.3f", "World", 42, 9.4554));
  17. CallLocalFunction(va_return("%s_%s", "y_utils", "va_return"), "s", "Hello World 42 9.455");
  18. CallLocalFunction(va_return("%s_%s", "y_utils", "va_return"), va_return("s"), va_return("Hello %s %d %.3f", "World", 42, 9.4554));
  19. ASSERT(gCalls_y_utils_va_return == 4);
  20. }
  21. static stock va_return_Pass(message[], va_args<>)
  22. {
  23. new
  24. str[64];
  25. printf("<prefix> %s", va_return(message, va_start<1>));
  26. return str;
  27. }
  28. Test:va_return_PassParameters()
  29. {
  30. new
  31. str[64];
  32. str = va_return_Pass("Something");
  33. ASSERT(!strcmp(str, "<prefix> Something"));
  34. str = va_return_Pass("Something, %i", 5);
  35. ASSERT(!strcmp(str, "<prefix> Something, 5"));
  36. }