diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-07-09 12:33:01 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-07-09 12:33:01 -0300 |
commit | 7c519dfbd0c68b952f0849e01deaa3750e1f8153 (patch) | |
tree | dde3ddbba310877db725df37a0d9f2cbe4e2a8f9 /testes/libs | |
parent | f59e6a93c0ad38a27a420e51abf8f13d962446b5 (diff) | |
download | lua-7c519dfbd0c68b952f0849e01deaa3750e1f8153.tar.gz lua-7c519dfbd0c68b952f0849e01deaa3750e1f8153.tar.bz2 lua-7c519dfbd0c68b952f0849e01deaa3750e1f8153.zip |
Added manual and tests for version 5.4-w2
Diffstat (limited to 'testes/libs')
-rw-r--r-- | testes/libs/lib1.c | 44 | ||||
-rw-r--r-- | testes/libs/lib11.c | 10 | ||||
-rw-r--r-- | testes/libs/lib2.c | 23 | ||||
-rw-r--r-- | testes/libs/lib21.c | 10 | ||||
-rw-r--r-- | testes/libs/makefile | 26 |
5 files changed, 113 insertions, 0 deletions
diff --git a/testes/libs/lib1.c b/testes/libs/lib1.c new file mode 100644 index 00000000..56b6ef41 --- /dev/null +++ b/testes/libs/lib1.c | |||
@@ -0,0 +1,44 @@ | |||
1 | #include "lua.h" | ||
2 | #include "lauxlib.h" | ||
3 | |||
4 | static int id (lua_State *L) { | ||
5 | return lua_gettop(L); | ||
6 | } | ||
7 | |||
8 | |||
9 | static const struct luaL_Reg funcs[] = { | ||
10 | {"id", id}, | ||
11 | {NULL, NULL} | ||
12 | }; | ||
13 | |||
14 | |||
15 | /* function used by lib11.c */ | ||
16 | LUAMOD_API int lib1_export (lua_State *L) { | ||
17 | lua_pushstring(L, "exported"); | ||
18 | return 1; | ||
19 | } | ||
20 | |||
21 | |||
22 | LUAMOD_API int onefunction (lua_State *L) { | ||
23 | luaL_checkversion(L); | ||
24 | lua_settop(L, 2); | ||
25 | lua_pushvalue(L, 1); | ||
26 | return 2; | ||
27 | } | ||
28 | |||
29 | |||
30 | LUAMOD_API int anotherfunc (lua_State *L) { | ||
31 | luaL_checkversion(L); | ||
32 | lua_pushfstring(L, "%d%%%d\n", (int)lua_tointeger(L, 1), | ||
33 | (int)lua_tointeger(L, 2)); | ||
34 | return 1; | ||
35 | } | ||
36 | |||
37 | |||
38 | LUAMOD_API int luaopen_lib1_sub (lua_State *L) { | ||
39 | lua_setglobal(L, "y"); /* 2nd arg: extra value (file name) */ | ||
40 | lua_setglobal(L, "x"); /* 1st arg: module name */ | ||
41 | luaL_newlib(L, funcs); | ||
42 | return 1; | ||
43 | } | ||
44 | |||
diff --git a/testes/libs/lib11.c b/testes/libs/lib11.c new file mode 100644 index 00000000..377d0c48 --- /dev/null +++ b/testes/libs/lib11.c | |||
@@ -0,0 +1,10 @@ | |||
1 | #include "lua.h" | ||
2 | |||
3 | /* function from lib1.c */ | ||
4 | int lib1_export (lua_State *L); | ||
5 | |||
6 | LUAMOD_API int luaopen_lib11 (lua_State *L) { | ||
7 | return lib1_export(L); | ||
8 | } | ||
9 | |||
10 | |||
diff --git a/testes/libs/lib2.c b/testes/libs/lib2.c new file mode 100644 index 00000000..bc9651ee --- /dev/null +++ b/testes/libs/lib2.c | |||
@@ -0,0 +1,23 @@ | |||
1 | #include "lua.h" | ||
2 | #include "lauxlib.h" | ||
3 | |||
4 | static int id (lua_State *L) { | ||
5 | return lua_gettop(L); | ||
6 | } | ||
7 | |||
8 | |||
9 | static const struct luaL_Reg funcs[] = { | ||
10 | {"id", id}, | ||
11 | {NULL, NULL} | ||
12 | }; | ||
13 | |||
14 | |||
15 | LUAMOD_API int luaopen_lib2 (lua_State *L) { | ||
16 | lua_settop(L, 2); | ||
17 | lua_setglobal(L, "y"); /* y gets 2nd parameter */ | ||
18 | lua_setglobal(L, "x"); /* x gets 1st parameter */ | ||
19 | luaL_newlib(L, funcs); | ||
20 | return 1; | ||
21 | } | ||
22 | |||
23 | |||
diff --git a/testes/libs/lib21.c b/testes/libs/lib21.c new file mode 100644 index 00000000..a39b683d --- /dev/null +++ b/testes/libs/lib21.c | |||
@@ -0,0 +1,10 @@ | |||
1 | #include "lua.h" | ||
2 | |||
3 | |||
4 | int luaopen_lib2 (lua_State *L); | ||
5 | |||
6 | LUAMOD_API int luaopen_lib21 (lua_State *L) { | ||
7 | return luaopen_lib2(L); | ||
8 | } | ||
9 | |||
10 | |||
diff --git a/testes/libs/makefile b/testes/libs/makefile new file mode 100644 index 00000000..9925fb00 --- /dev/null +++ b/testes/libs/makefile | |||
@@ -0,0 +1,26 @@ | |||
1 | # change this variable to point to the directory with Lua headers | ||
2 | # of the version being tested | ||
3 | LUA_DIR = ../../ | ||
4 | |||
5 | CC = gcc | ||
6 | |||
7 | # compilation should generate Dynamic-Link Libraries | ||
8 | CFLAGS = -Wall -std=gnu99 -O2 -I$(LUA_DIR) -fPIC -shared | ||
9 | |||
10 | # libraries used by the tests | ||
11 | all: lib1.so lib11.so lib2.so lib21.so lib2-v2.so | ||
12 | |||
13 | lib1.so: lib1.c | ||
14 | $(CC) $(CFLAGS) -o lib1.so lib1.c | ||
15 | |||
16 | lib11.so: lib11.c | ||
17 | $(CC) $(CFLAGS) -o lib11.so lib11.c | ||
18 | |||
19 | lib2.so: lib2.c | ||
20 | $(CC) $(CFLAGS) -o lib2.so lib2.c | ||
21 | |||
22 | lib21.so: lib21.c | ||
23 | $(CC) $(CFLAGS) -o lib21.so lib21.c | ||
24 | |||
25 | lib2-v2.so: lib2.so | ||
26 | mv lib2.so ./lib2-v2.so | ||