diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-03-24 15:23:55 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-03-24 15:23:55 -0300 |
commit | cad5a4fdbb0f0843ec67596d1e472187decf1c88 (patch) | |
tree | ced2965005e866ccbebd90cbd6948c90267194f7 /ltests.c | |
parent | fdbb4c23414cef141602a45ae8464f0553085e02 (diff) | |
download | lua-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.c | 53 |
1 files changed, 28 insertions, 25 deletions
@@ -327,37 +327,40 @@ void lua_printobj (lua_State *L, struct GCObject *o) { | |||
327 | 327 | ||
328 | 328 | ||
329 | void lua_printvalue (TValue *v) { | 329 | void 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 | ||