aboutsummaryrefslogtreecommitdiff
path: root/ltests.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-03-24 15:23:55 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-03-24 15:23:55 -0300
commitcad5a4fdbb0f0843ec67596d1e472187decf1c88 (patch)
treeced2965005e866ccbebd90cbd6948c90267194f7 /ltests.c
parentfdbb4c23414cef141602a45ae8464f0553085e02 (diff)
downloadlua-cad5a4fdbb0f0843ec67596d1e472187decf1c88.tar.gz
lua-cad5a4fdbb0f0843ec67596d1e472187decf1c88.tar.bz2
lua-cad5a4fdbb0f0843ec67596d1e472187decf1c88.zip
Details
Small changes in test library: - execute mode added to 'all.lua'; - more information about subtypes (tags) when printing a stack.
Diffstat (limited to 'ltests.c')
-rw-r--r--ltests.c53
1 files changed, 28 insertions, 25 deletions
diff --git a/ltests.c b/ltests.c
index 5b4a6000..6a638d05 100644
--- a/ltests.c
+++ b/ltests.c
@@ -327,37 +327,40 @@ void lua_printobj (lua_State *L, struct GCObject *o) {
327 327
328 328
329void lua_printvalue (TValue *v) { 329void lua_printvalue (TValue *v) {
330 switch (ttype(v)) { 330 switch (ttypetag(v)) {
331 case LUA_TNUMBER: { 331 case LUA_VNUMINT: case LUA_VNUMFLT: {
332 char buff[LUA_N2SBUFFSZ]; 332 char buff[LUA_N2SBUFFSZ];
333 unsigned len = luaO_tostringbuff(v, buff); 333 unsigned len = luaO_tostringbuff(v, buff);
334 buff[len] = '\0'; 334 buff[len] = '\0';
335 printf("%s", buff); 335 printf("%s", buff);
336 break; 336 break;
337 } 337 }
338 case LUA_TSTRING: { 338 case LUA_VSHRSTR:
339 printf("'%s'", getstr(tsvalue(v))); 339 printf("'%s'", getstr(tsvalue(v))); break;
340 break; 340 case LUA_VLNGSTR:
341 } 341 printf("'%.30s...'", getstr(tsvalue(v))); break;
342 case LUA_TBOOLEAN: { 342 case LUA_VFALSE:
343 printf("%s", (!l_isfalse(v) ? "true" : "false")); 343 printf("%s", "false"); break;
344 break; 344 case LUA_VTRUE:
345 } 345 printf("%s", "true"); break;
346 case LUA_TLIGHTUSERDATA: { 346 case LUA_VLIGHTUSERDATA:
347 printf("light udata: %p", pvalue(v)); 347 printf("light udata: %p", pvalue(v)); break;
348 break; 348 case LUA_VUSERDATA:
349 } 349 printf("full udata: %p", uvalue(v)); break;
350 case LUA_TNIL: { 350 case LUA_VNIL:
351 printf("nil"); 351 printf("nil"); break;
352 break; 352 case LUA_VLCF:
353 } 353 printf("light C function: %p", fvalue(v)); break;
354 default: { 354 case LUA_VCCL:
355 if (ttislcf(v)) 355 printf("C closure: %p", clCvalue(v)); break;
356 printf("light C function: %p", fvalue(v)); 356 case LUA_VLCL:
357 else /* must be collectable */ 357 printf("Lua function: %p", clLvalue(v)); break;
358 printf("%s: %p", ttypename(ttype(v)), gcvalue(v)); 358 case LUA_VTHREAD:
359 break; 359 printf("thread: %p", thvalue(v)); break;
360 } 360 case LUA_VTABLE:
361 printf("table: %p", hvalue(v)); break;
362 default:
363 lua_assert(0);
361 } 364 }
362} 365}
363 366