Home

Awesome

(Discontinued) Volley

***This project is no longer active and has been archived.***

Volley is a small Lua embedded executable designed to do service tests for JSON based APIs and placed inside code repositories with the source code it serves.

This is both a learning project (C, Lua and makefiles) and experimental product. Lean development principles and continuous improvement are core to the project.

External libraries

Parson (https://github.com/kgabis/parson) is being used for JSON serialisation.

Prerequisites

Written and tested on Ubuntu Linux

The Lua library (liblua.a) is required to build the application. This can be installed via a package manager or the source code can be downloaded, compiled and liblua.a installed into /usr/local/lib (copy/paste).

Compile & Test

Compile and test:

cd tests
./test.sh

Compile & Run

Compile and run:

cd src
make
./bigben ../scripts/test.lua

Build:

$ cd src
$ make
$ make clean

Run... path to a Lua script must be provided as the first argument:

$ ./bigben ../scripts/test.lua

Make

Task nameAction
makeSame as bigben
make bigbenBuilds the application
make cleanRemoves all object files

Volley Functions

Extra Lua functions, written in C, are available to aid in testing

NameDescription
ben_tabulate(string)Parses a JSON string into a Lua table
ben_stringify(table)Serialises a Lua table representing JSON into a JSON string
ben_is_array(table)Returns true if the supplied JSON table is a JSON array
ben_is_object(table)Returns true if the supplied JSON table is a JSON object

De-serialise JSON string into a table

ben_tabulate(string) parses a JSON string into a Lua table

json_str = [[
{
  "bool": true,
  "number": 3.14,
  "string": "Lua",
  "array": [
  "item 1",
  "item 2"
  ],
  "object": {
    "a": false,
    "b": 9.4,
    "c": "C",
  }
}
]]

json_table = ben_tabulate(json_str)
pi = json_table[number]

Stringify a JSON table

ben_stringify(table) takes a Lua table representing a JSON structure and serialises it into a string

json_table = wildJsonTableAppeared()

json_str = ben_stringify(json_table)
print(json_str)

Is a JSON table an array?

ben_is_array(table) takes a Lua table representing a JSON structure and returns true if it's a JSON array

json_table = wildJsonTableAppeared()

is_array = ben_is_array(json_table)
print("Is an array?... " .. tostring(is_array))

Is a JSON table an object?

ben_is_object(table) takes a Lua table representing a JSON structure and returns true if it's a JSON object

json_table = wildJsonTableAppeared()

is_object = ben_is_object(json_table)
print("Is an object?... " .. tostring(is_object))