diff options
author | Volker Lendecke <vl@samba.org> | 2009-09-29 13:11:20 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2009-09-29 13:51:43 +0200 |
commit | 0cf317f36f7582cb0540c74910020c9d5f4aa14f (patch) | |
tree | e5e46fd025976c2a6955d34435201969f1178b01 /source3/lua-5.1.4/test | |
parent | 64e08fef16001d62b43f6925a26ad739391cface (diff) | |
download | samba-0cf317f36f7582cb0540c74910020c9d5f4aa14f.tar.gz samba-0cf317f36f7582cb0540c74910020c9d5f4aa14f.tar.bz2 samba-0cf317f36f7582cb0540c74910020c9d5f4aa14f.zip |
s3: Remove the lua interpreter again
This was meant to support async winbind. But as the hairy parts of async
winbind (getgrent) are done without it, it can go again.
Diffstat (limited to 'source3/lua-5.1.4/test')
-rw-r--r-- | source3/lua-5.1.4/test/README | 25 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/bisect.lua | 27 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/cf.lua | 16 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/echo.lua | 5 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/env.lua | 7 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/factorial.lua | 32 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/fib.lua | 40 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/fibfor.lua | 13 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/globals.lua | 13 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/hello.lua | 3 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/life.lua | 111 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/luac.lua | 7 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/printf.lua | 7 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/readonly.lua | 12 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/sieve.lua | 29 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/sort.lua | 66 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/table.lua | 12 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/trace-calls.lua | 32 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/trace-globals.lua | 38 | ||||
-rw-r--r-- | source3/lua-5.1.4/test/xd.lua | 14 |
20 files changed, 0 insertions, 509 deletions
diff --git a/source3/lua-5.1.4/test/README b/source3/lua-5.1.4/test/README deleted file mode 100644 index baf7583676..0000000000 --- a/source3/lua-5.1.4/test/README +++ /dev/null @@ -1,25 +0,0 @@ -These are simple tests for Lua. Some of them contain useful code. -They are meant to be run to make sure Lua is built correctly and also -to be read, to see how Lua programs look. - -Here is a one-line summary of each program: - - bisect.lua bisection method for solving non-linear equations - cf.lua temperature conversion table (celsius to farenheit) - echo.lua echo command line arguments - env.lua environment variables as automatic global variables - factorial.lua factorial without recursion - fib.lua fibonacci function with cache - fibfor.lua fibonacci numbers with coroutines and generators - globals.lua report global variable usage - hello.lua the first program in every language - life.lua Conway's Game of Life - luac.lua bare-bones luac - printf.lua an implementation of printf - readonly.lua make global variables readonly - sieve.lua the sieve of of Eratosthenes programmed with coroutines - sort.lua two implementations of a sort function - table.lua make table, grouping all data for the same item - trace-calls.lua trace calls - trace-globals.lua trace assigments to global variables - xd.lua hex dump diff --git a/source3/lua-5.1.4/test/bisect.lua b/source3/lua-5.1.4/test/bisect.lua deleted file mode 100644 index f91e69bfba..0000000000 --- a/source3/lua-5.1.4/test/bisect.lua +++ /dev/null @@ -1,27 +0,0 @@ --- bisection method for solving non-linear equations - -delta=1e-6 -- tolerance - -function bisect(f,a,b,fa,fb) - local c=(a+b)/2 - io.write(n," c=",c," a=",a," b=",b,"\n") - if c==a or c==b or math.abs(a-b)<delta then return c,b-a end - n=n+1 - local fc=f(c) - if fa*fc<0 then return bisect(f,a,c,fa,fc) else return bisect(f,c,b,fc,fb) end -end - --- find root of f in the inverval [a,b]. needs f(a)*f(b)<0 -function solve(f,a,b) - n=0 - local z,e=bisect(f,a,b,f(a),f(b)) - io.write(string.format("after %d steps, root is %.17g with error %.1e, f=%.1e\n",n,z,e,f(z))) -end - --- our function -function f(x) - return x*x*x-x-1 -end - --- find zero in [1,2] -solve(f,1,2) diff --git a/source3/lua-5.1.4/test/cf.lua b/source3/lua-5.1.4/test/cf.lua deleted file mode 100644 index 2b2880d350..0000000000 --- a/source3/lua-5.1.4/test/cf.lua +++ /dev/null @@ -1,16 +0,0 @@ --- temperature conversion table (celsius to farenheit) - -for c0=-20,50-1,10 do - io.write("C ") - for c=c0,c0+10-1 do - io.write(string.format("%3.0f ",c)) - end - io.write("\n") - - io.write("F ") - for c=c0,c0+10-1 do - f=(9/5)*c+32 - io.write(string.format("%3.0f ",f)) - end - io.write("\n\n") -end diff --git a/source3/lua-5.1.4/test/echo.lua b/source3/lua-5.1.4/test/echo.lua deleted file mode 100644 index 4313439a85..0000000000 --- a/source3/lua-5.1.4/test/echo.lua +++ /dev/null @@ -1,5 +0,0 @@ --- echo command line arguments - -for i=0,table.getn(arg) do - print(i,arg[i]) -end diff --git a/source3/lua-5.1.4/test/env.lua b/source3/lua-5.1.4/test/env.lua deleted file mode 100644 index 9e62a57fbf..0000000000 --- a/source3/lua-5.1.4/test/env.lua +++ /dev/null @@ -1,7 +0,0 @@ --- read environment variables as if they were global variables - -local f=function (t,i) return os.getenv(i) end -setmetatable(getfenv(),{__index=f}) - --- an example -print(a,USER,PATH) diff --git a/source3/lua-5.1.4/test/factorial.lua b/source3/lua-5.1.4/test/factorial.lua deleted file mode 100644 index 7c4cf0fa45..0000000000 --- a/source3/lua-5.1.4/test/factorial.lua +++ /dev/null @@ -1,32 +0,0 @@ --- function closures are powerful - --- traditional fixed-point operator from functional programming -Y = function (g) - local a = function (f) return f(f) end - return a(function (f) - return g(function (x) - local c=f(f) - return c(x) - end) - end) -end - - --- factorial without recursion -F = function (f) - return function (n) - if n == 0 then return 1 - else return n*f(n-1) end - end - end - -factorial = Y(F) -- factorial is the fixed point of F - --- now test it -function test(x) - io.write(x,"! = ",factorial(x),"\n") -end - -for n=0,16 do - test(n) -end diff --git a/source3/lua-5.1.4/test/fib.lua b/source3/lua-5.1.4/test/fib.lua deleted file mode 100644 index 97a921b132..0000000000 --- a/source3/lua-5.1.4/test/fib.lua +++ /dev/null @@ -1,40 +0,0 @@ --- fibonacci function with cache - --- very inefficient fibonacci function -function fib(n) - N=N+1 - if n<2 then - return n - else - return fib(n-1)+fib(n-2) - end -end - --- a general-purpose value cache -function cache(f) - local c={} - return function (x) - local y=c[x] - if not y then - y=f(x) - c[x]=y - end - return y - end -end - --- run and time it -function test(s,f) - N=0 - local c=os.clock() - local v=f(n) - local t=os.clock()-c - print(s,n,v,t,N) -end - -n=arg[1] or 24 -- for other values, do lua fib.lua XX -n=tonumber(n) -print("","n","value","time","evals") -test("plain",fib) -fib=cache(fib) -test("cached",fib) diff --git a/source3/lua-5.1.4/test/fibfor.lua b/source3/lua-5.1.4/test/fibfor.lua deleted file mode 100644 index 8bbba39cd7..0000000000 --- a/source3/lua-5.1.4/test/fibfor.lua +++ /dev/null @@ -1,13 +0,0 @@ --- example of for with generator functions - -function generatefib (n) - return coroutine.wrap(function () - local a,b = 1, 1 - while a <= n do - coroutine.yield(a) - a, b = b, a+b - end - end) -end - -for i in generatefib(1000) do print(i) end diff --git a/source3/lua-5.1.4/test/globals.lua b/source3/lua-5.1.4/test/globals.lua deleted file mode 100644 index d4c20e1565..0000000000 --- a/source3/lua-5.1.4/test/globals.lua +++ /dev/null @@ -1,13 +0,0 @@ --- reads luac listings and reports global variable usage --- lines where a global is written to are marked with "*" --- typical usage: luac -p -l file.lua | lua globals.lua | sort | lua table.lua - -while 1 do - local s=io.read() - if s==nil then break end - local ok,_,l,op,g=string.find(s,"%[%-?(%d*)%]%s*([GS])ETGLOBAL.-;%s+(.*)$") - if ok then - if op=="S" then op="*" else op="" end - io.write(g,"\t",l,op,"\n") - end -end diff --git a/source3/lua-5.1.4/test/hello.lua b/source3/lua-5.1.4/test/hello.lua deleted file mode 100644 index 0925498f21..0000000000 --- a/source3/lua-5.1.4/test/hello.lua +++ /dev/null @@ -1,3 +0,0 @@ --- the first program in every language - -io.write("Hello world, from ",_VERSION,"!\n") diff --git a/source3/lua-5.1.4/test/life.lua b/source3/lua-5.1.4/test/life.lua deleted file mode 100644 index 911d9fe177..0000000000 --- a/source3/lua-5.1.4/test/life.lua +++ /dev/null @@ -1,111 +0,0 @@ --- life.lua --- original by Dave Bollinger <DBollinger@compuserve.com> posted to lua-l --- modified to use ANSI terminal escape sequences --- modified to use for instead of while - -local write=io.write - -ALIVE="¥" DEAD="þ" -ALIVE="O" DEAD="-" - -function delay() -- NOTE: SYSTEM-DEPENDENT, adjust as necessary - for i=1,10000 do end - -- local i=os.clock()+1 while(os.clock()<i) do end -end - -function ARRAY2D(w,h) - local t = {w=w,h=h} - for y=1,h do - t[y] = {} - for x=1,w do - t[y][x]=0 - end - end - return t -end - -_CELLS = {} - --- give birth to a "shape" within the cell array -function _CELLS:spawn(shape,left,top) - for y=0,shape.h-1 do - for x=0,shape.w-1 do - self[top+y][left+x] = shape[y*shape.w+x+1] - end - end -end - --- run the CA and produce the next generation -function _CELLS:evolve(next) - local ym1,y,yp1,yi=self.h-1,self.h,1,self.h - while yi > 0 do - local xm1,x,xp1,xi=self.w-1,self.w,1,self.w - while xi > 0 do - local sum = self[ym1][xm1] + self[ym1][x] + self[ym1][xp1] + - self[y][xm1] + self[y][xp1] + - self[yp1][xm1] + self[yp1][x] + self[yp1][xp1] - next[y][x] = ((sum==2) and self[y][x]) or ((sum==3) and 1) or 0 - xm1,x,xp1,xi = x,xp1,xp1+1,xi-1 - end - ym1,y,yp1,yi = y,yp1,yp1+1,yi-1 - end -end - --- output the array to screen -function _CELLS:draw() - local out="" -- accumulate to reduce flicker - for y=1,self.h do - for x=1,self.w do - out=out..(((self[y][x]>0) and ALIVE) or DEAD) - end - out=out.."\n" - end - write(out) -end - --- constructor -function CELLS(w,h) - local c = ARRAY2D(w,h) - c.spawn = _CELLS.spawn - c.evolve = _CELLS.evolve - c.draw = _CELLS.draw - return c -end - --- --- shapes suitable for use with spawn() above --- -HEART = { 1,0,1,1,0,1,1,1,1; w=3,h=3 } -GLIDER = { 0,0,1,1,0,1,0,1,1; w=3,h=3 } -EXPLODE = { 0,1,0,1,1,1,1,0,1,0,1,0; w=3,h=4 } -FISH = { 0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,0,0,1,0; w=5,h=4 } -BUTTERFLY = { 1,0,0,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,0,0,0,1; w=5,h=5 } - --- the main routine -function LIFE(w,h) - -- create two arrays - local thisgen = CELLS(w,h) - local nextgen = CELLS(w,h) - - -- create some life - -- about 1000 generations of fun, then a glider steady-state - thisgen:spawn(GLIDER,5,4) - thisgen:spawn(EXPLODE,25,10) - thisgen:spawn(FISH,4,12) - - -- run until break - local gen=1 - write("\027[2J") -- ANSI clear screen - while 1 do - thisgen:evolve(nextgen) - thisgen,nextgen = nextgen,thisgen - write("\027[H") -- ANSI home cursor - thisgen:draw() - write("Life - generation ",gen,"\n") - gen=gen+1 - if gen>2000 then break end - --delay() -- no delay - end -end - -LIFE(40,20) diff --git a/source3/lua-5.1.4/test/luac.lua b/source3/lua-5.1.4/test/luac.lua deleted file mode 100644 index 96a0a97ce7..0000000000 --- a/source3/lua-5.1.4/test/luac.lua +++ /dev/null @@ -1,7 +0,0 @@ --- bare-bones luac in Lua --- usage: lua luac.lua file.lua - -assert(arg[1]~=nil and arg[2]==nil,"usage: lua luac.lua file.lua") -f=assert(io.open("luac.out","wb")) -assert(f:write(string.dump(assert(loadfile(arg[1]))))) -assert(f:close()) diff --git a/source3/lua-5.1.4/test/printf.lua b/source3/lua-5.1.4/test/printf.lua deleted file mode 100644 index 58c63ff518..0000000000 --- a/source3/lua-5.1.4/test/printf.lua +++ /dev/null @@ -1,7 +0,0 @@ --- an implementation of printf - -function printf(...) - io.write(string.format(...)) -end - -printf("Hello %s from %s on %s\n",os.getenv"USER" or "there",_VERSION,os.date()) diff --git a/source3/lua-5.1.4/test/readonly.lua b/source3/lua-5.1.4/test/readonly.lua deleted file mode 100644 index 85c0b4e013..0000000000 --- a/source3/lua-5.1.4/test/readonly.lua +++ /dev/null @@ -1,12 +0,0 @@ --- make global variables readonly - -local f=function (t,i) error("cannot redefine global variable `"..i.."'",2) end -local g={} -local G=getfenv() -setmetatable(g,{__index=G,__newindex=f}) -setfenv(1,g) - --- an example -rawset(g,"x",3) -x=2 -y=1 -- cannot redefine `y' diff --git a/source3/lua-5.1.4/test/sieve.lua b/source3/lua-5.1.4/test/sieve.lua deleted file mode 100644 index 0871bb2125..0000000000 --- a/source3/lua-5.1.4/test/sieve.lua +++ /dev/null @@ -1,29 +0,0 @@ --- the sieve of of Eratosthenes programmed with coroutines --- typical usage: lua -e N=1000 sieve.lua | column - --- generate all the numbers from 2 to n -function gen (n) - return coroutine.wrap(function () - for i=2,n do coroutine.yield(i) end - end) -end - --- filter the numbers generated by `g', removing multiples of `p' -function filter (p, g) - return coroutine.wrap(function () - while 1 do - local n = g() - if n == nil then return end - if math.mod(n, p) ~= 0 then coroutine.yield(n) end - end - end) -end - -N=N or 1000 -- from command line -x = gen(N) -- generate primes up to N -while 1 do - local n = x() -- pick a number until done - if n == nil then break end - print(n) -- must be a prime number - x = filter(n, x) -- now remove its multiples -end diff --git a/source3/lua-5.1.4/test/sort.lua b/source3/lua-5.1.4/test/sort.lua deleted file mode 100644 index 0bcb15f837..0000000000 --- a/source3/lua-5.1.4/test/sort.lua +++ /dev/null @@ -1,66 +0,0 @@ --- two implementations of a sort function --- this is an example only. Lua has now a built-in function "sort" - --- extracted from Programming Pearls, page 110 -function qsort(x,l,u,f) - if l<u then - local m=math.random(u-(l-1))+l-1 -- choose a random pivot in range l..u - x[l],x[m]=x[m],x[l] -- swap pivot to first position - local t=x[l] -- pivot value - m=l - local i=l+1 - while i<=u do - -- invariant: x[l+1..m] < t <= x[m+1..i-1] - if f(x[i],t) then - m=m+1 - x[m],x[i]=x[i],x[m] -- swap x[i] and x[m] - end - i=i+1 - end - x[l],x[m]=x[m],x[l] -- swap pivot to a valid place - -- x[l+1..m-1] < x[m] <= x[m+1..u] - qsort(x,l,m-1,f) - qsort(x,m+1,u,f) - end -end - -function selectionsort(x,n,f) - local i=1 - while i<=n do - local m,j=i,i+1 - while j<=n do - if f(x[j],x[m]) then m=j end - j=j+1 - end - x[i],x[m]=x[m],x[i] -- swap x[i] and x[m] - i=i+1 - end -end - -function show(m,x) - io.write(m,"\n\t") - local i=1 - while x[i] do - io.write(x[i]) - i=i+1 - if x[i] then io.write(",") end - end - io.write("\n") -end - -function testsorts(x) - local n=1 - while x[n] do n=n+1 end; n=n-1 -- count elements - show("original",x) - qsort(x,1,n,function (x,y) return x<y end) - show("after quicksort",x) - selectionsort(x,n,function (x,y) return x>y end) - show("after reverse selection sort",x) - qsort(x,1,n,function (x,y) return x<y end) - show("after quicksort again",x) -end - --- array to be sorted -x={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"} - -testsorts(x) diff --git a/source3/lua-5.1.4/test/table.lua b/source3/lua-5.1.4/test/table.lua deleted file mode 100644 index 235089c04b..0000000000 --- a/source3/lua-5.1.4/test/table.lua +++ /dev/null @@ -1,12 +0,0 @@ --- make table, grouping all data for the same item --- input is 2 columns (item, data) - -local A -while 1 do - local l=io.read() - if l==nil then break end - local _,_,a,b=string.find(l,'"?([_%w]+)"?%s*(.*)$') - if a~=A then A=a io.write("\n",a,":") end - io.write(" ",b) -end -io.write("\n") diff --git a/source3/lua-5.1.4/test/trace-calls.lua b/source3/lua-5.1.4/test/trace-calls.lua deleted file mode 100644 index 6d7a7b3b43..0000000000 --- a/source3/lua-5.1.4/test/trace-calls.lua +++ /dev/null @@ -1,32 +0,0 @@ --- trace calls --- example: lua -ltrace-calls bisect.lua - -local level=0 - -local function hook(event) - local t=debug.getinfo(3) - io.write(level," >>> ",string.rep(" ",level)) - if t~=nil and t.currentline>=0 then io.write(t.short_src,":",t.currentline," ") end - t=debug.getinfo(2) - if event=="call" then - level=level+1 - else - level=level-1 if level<0 then level=0 end - end - if t.what=="main" then - if event=="call" then - io.write("begin ",t.short_src) - else - io.write("end ",t.short_src) - end - elseif t.what=="Lua" then --- table.foreach(t,print) - io.write(event," ",t.name or "(Lua)"," <",t.linedefined,":",t.short_src,">") - else - io.write(event," ",t.name or "(C)"," [",t.what,"] ") - end - io.write("\n") -end - -debug.sethook(hook,"cr") -level=0 diff --git a/source3/lua-5.1.4/test/trace-globals.lua b/source3/lua-5.1.4/test/trace-globals.lua deleted file mode 100644 index 295e670caa..0000000000 --- a/source3/lua-5.1.4/test/trace-globals.lua +++ /dev/null @@ -1,38 +0,0 @@ --- trace assigments to global variables - -do - -- a tostring that quotes strings. note the use of the original tostring. - local _tostring=tostring - local tostring=function(a) - if type(a)=="string" then - return string.format("%q",a) - else - return _tostring(a) - end - end - - local log=function (name,old,new) - local t=debug.getinfo(3,"Sl") - local line=t.currentline - io.write(t.short_src) - if line>=0 then io.write(":",line) end - io.write(": ",name," is now ",tostring(new)," (was ",tostring(old),")","\n") - end - - local g={} - local set=function (t,name,value) - log(name,g[name],value) - g[name]=value - end - setmetatable(getfenv(),{__index=g,__newindex=set}) -end - --- an example - -a=1 -b=2 -a=10 -b=20 -b=nil -b=200 -print(a,b,c) diff --git a/source3/lua-5.1.4/test/xd.lua b/source3/lua-5.1.4/test/xd.lua deleted file mode 100644 index d447ae69a3..0000000000 --- a/source3/lua-5.1.4/test/xd.lua +++ /dev/null @@ -1,14 +0,0 @@ --- hex dump --- usage: lua xd.lua < file - -local offset=0 -while true do - local s=io.read(16) - if s==nil then return end - io.write(string.format("%08X ",offset)) - string.gsub(s,"(.)", - function (c) io.write(string.format("%02X ",string.byte(c))) end) - io.write(string.rep(" ",3*(16-string.len(s)))) - io.write(" ",string.gsub(s,"%c","."),"\n") - offset=offset+16 -end |