aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/headless/deviceinit.lua92
-rw-r--r--spec/headless/init.lua2
-rw-r--r--spec/test1_spec.lua58
3 files changed, 152 insertions, 0 deletions
diff --git a/spec/headless/deviceinit.lua b/spec/headless/deviceinit.lua
new file mode 100644
index 0000000..7e913cd
--- /dev/null
+++ b/spec/headless/deviceinit.lua
@@ -0,0 +1,92 @@
+print("device init called")
+return {
+ --[[
+ Anti-Alias
+ Should the window use fullscreen anti aliasing
+ Default:16
+ ]]
+ ["Anti Alias"] = 16,
+ --[[
+ Bits Per Pixel
+ The minimum bits per pixel of the color buffer in fullscreen. Ignored in window mode.
+ Default:16
+ ]]
+ ["Bits Per Pixel"] = 16,
+ --[[
+ Device Type
+ Options:
+ WIN32 - Only avaliable on windows desktops
+ WINCE - Only avaliable on windows mobile
+ COCOA - Only avaliable on OSX
+ X11 - Avaliable on Linux, Solaris, BSD, anyone that uses X11
+ SDL - Avaliable on most systems
+ CONSOLE - Usually avaliable, but can only render text
+ BEST - Automatically choose the best device.
+ Default:Best
+ ]]
+ ["Device Type"] = "BEST",
+ --[[
+ Display Adapter
+ Pick which graphics card is used for rendering when there is more than one.
+ Default:0
+ ]]
+ ["Display Adapter"] = 0,
+ --[[
+ Double Buffer
+ Should the window use doublebuffering?
+ Default:false
+ ]]
+ ["Double Buffer"] = true,
+ --[[
+ Multithreaded
+ Should the display use multiple threads?
+ Default:false
+ ]]
+ ["Multithreaded"] = false,
+ --[[
+ Driver Type
+ The video driver used to render graphics
+ Options:
+ NULL - You probably don't want this one
+ SOFTWARE - Donate your computer to a mueseum
+ BURNINGS - a software alternative
+ D3D8 - Direct 3D 8 Win32 only
+ D3D9 - Direct 3D 9 Win32 only
+ OPENGL - Open GL
+ (vulkan support comming soon... maybe.)
+ Default:OPENGL
+ ]]
+ ["Driver Type"] = "NULL",
+ --[[
+ Fullscreen
+ Should the window be fullscreen?
+ Default:false
+ ]]
+ ["Fullscreen"] = false,
+ --[[
+ Stencil buffer
+ Should the stencil buffer be enabled?
+ Default:false
+ ]]
+ ["Stencil Buffer"] = true,
+ --[[
+ Stereo Buffer
+ Should the window use stereo buffers?
+ Default:false
+ ]]
+ ["Stereo Buffer"] = false,
+ --[[
+ Vertical Sync
+ Should the frame wait to be displayed to screen before starting the next draw?
+ Enable this if you are getting graphical artifacts
+ Default:false
+ ]]
+ ["VSync"] = true,
+ --[[
+ Window Width/height
+ Adjusts the size of the window.
+ Default: 640,480
+ ]]
+ ["Window Width"] = 640,
+ ["Window Height"] = 480,
+}
diff --git a/spec/headless/init.lua b/spec/headless/init.lua
new file mode 100644
index 0000000..86425cd
--- /dev/null
+++ b/spec/headless/init.lua
@@ -0,0 +1,2 @@
+assert(scrh)
+GAME.exit()
diff --git a/spec/test1_spec.lua b/spec/test1_spec.lua
new file mode 100644
index 0000000..bcb5756
--- /dev/null
+++ b/spec/test1_spec.lua
@@ -0,0 +1,58 @@
+print("Hello, world!")
+
+function rungame()
+ f = io.popen("bin\\client\\bin\\brokengine_client.exe spec/headless","r")
+ d = f:read("*all")
+ f:close()
+ return d
+end
+
+function writegame(...)
+ f = io.open("spec/headless/init.lua","w")
+ data = {...}
+ data[#data + 1] = "\nGAME.exit()\n"
+ f:write(table.concat(data))
+ f:close()
+end
+
+function assert_game_runs()
+ assert.truthy(rungame():find("\nGoodbye\n$"))
+end
+
+describe("Brok[en]gine",function()
+ it("should run",function()
+ writegame()
+ d = rungame()
+ assert_game_runs()
+ end)
+ it("should provide a lua environment",function()
+ writegame("print(\"Hello from lua!\")")
+ d = rungame()
+ assert.truthy(d:find("\nHello from lua!\n"))
+ end)
+
+ for k,v in pairs({
+ buttons = "newbutton",
+ checkboxes = "newcheckbox",
+ colorselectors = "newcolorselector",
+ editboxes = "neweditbox",
+ openfiledialogs = "newfileopendialog",
+ images = "newiguiimage",
+ labels = "newlabel",
+ spinboxes = "newspinbox",
+ treeviews = "newtreeview",
+ windows = "newwindow",
+ }) do
+ it("should provide functions to make gui " .. k,function()
+ writegame("assert(gui." .. v .. ")")
+ assert_game_runs()
+ end)
+ end
+
+ it("should provide functions to get the width and height of the screen",function()
+ writegame("assert(scrw)")
+ assert_game_runs()
+ writegame("assert(scrh)")
+ assert_game_runs()
+ end)
+end)