# make all instead of make platform, this would allow to remove platform.sh
# also avoid setnv_lua.sh if possible

# ensure luarocks package are installed inside insall location
/home/travis/build/bluebird75/luaunit/install/luarocks/share/lua/5.1/luarocks"
/home/travis/build/bluebird75/luaunit/install/luarocks/share/lua/5.1/luarocks"


TODO Future:
============
- run a full modules with a function
- build lua with ASAN, memory sanitizer and so on on travis before running it
- ensure that assert string functions like assertStr, strcontains, etc reject incorrect type with a correct error message
- pretty function formatting: https://github.com/luarocks/luarocks/blob/master/src/luarocks/core/util.lua
- platform detection:
- document prettystr
- validate output with ignored tests (0 failures or some failures)
- parametrize tests
- coloured output
- better error messages for string differences (diffing)
- print local variables upon assertion error:
	+ debug.get_local( ) will get the local variables in the current context
	+ debug.get_upvalue( ) will get the upvalues in the current context
- see inspect for better table printing: https://github.com/kikito/inspect.lua
	+ print list part separate from the dict part in a table
	+ print metatables in tables
- see StackTracePlus for printing more stack information: https://github.com/ignacio/StackTracePlus
- how does busted deal with nested tables ? functions ?
- look at serpent to see how to improve nested table printing
- function should be printed as <function>
- print table of test test_filterWithPattern and see how to improve readability
- shuffle should shuffle separately classes and then class methods
- add assertTableContains and assertTableNotContains to check the presence / absence of value in an array
- look at serpent to see how to improve nested table printing
- doc about usage of prettystr & assertion library
- assertListContainsElements
- assertListContainsElements
- checkXXX for every assertXXX

- review and enhance: TestLuaUnitExecution:test_withTableErrorInside


Version 3.5 (future):
============

Planned:
--------
- global setup / teardown
- class setup / teardown
- report test duration everywhere
- add date and duration to tap output
- XML: report system information
- align the "OK" vertically for text output
- better detection of screen size
- move all file:line description to stack trace
- better deal with one line formatting
- table_contains():
	+ check with finding table or nested tables
	+ add check for error messages
- correctly compare tables with same content but different metatable

Already done:
-------------
- 

Version 3.4:
============
TODO:
- assertAlmostNotEquals shall support tables
- document the release process to luarocks and update dev manual
- add test for the runner interface of luaunit
- update examples
- dev guide: explain doit.py
- dev guide: explain CI

Done
- add a list of environment variables controlling LuaUnit
- double-check documentation generation
- move enabling global namespace pollution explanation to a later chapter
- update doc about TABLE_EQUALS_KEYBYCONTENT
- update doc about test skipping
- update documentation about how to run list of test classes
- update documentation about setOutputType()
- assertAlmostEquals can check lists and more complex structures
- can choose test output type through environment variables LUAUNIT_OUTPUT
- setOutputType() also accepts the xml filename when using the format junit
- simplify printing of table-info in cycles
- allow to skip tests
- fix a bug where assertIs/assertNotIs would not deal with protected metatables
- fix a bug in dealing with table including cycles of different structure
- remove option TABLE_EQUALS_KEYBYCONTENT, it did not make sense


Version 3.3:
============
- make sure that example source code is included in documentation when packaging
- add annex to documentation with full source code of example
- add annex with BSD license
- verify that assertError functions all work with tables, review implementation in detail
- useRe -> usePattern
- add success() to terminate test successfully
- doc: explain that prettystr() is used in assertions
- check rock installation of luaunit
- add custom message support
- build luarocks
- update contributors
- update download badge
- doc about prettystr
- add fail() to force test failure
- use caching on travis-ci
- assertAlmostEqual no longer includes a default margin, margin must always be explicitly specified.
- verify that lu.EPS by calculation
- fix include/exclude bug (see https://github.com/bluebird75/luaunit/pull/82 )
- doc about scientific computing dedicated functions
- assertions for nan and inf and +/- zero
- fixes for junit and tap output
- doc improvements
- better error messages for list assertions:
	+ expected length of X, got Y
	+ index differing in table 1 and 2
- more doc about assertTrue/False/... with a table
- randomized testing
- can run a tests numerous times (useful for triggering the JIT effect)
- can include and exclude tests from the test list

Done since 3.1:
===============
x provide a luarock package. See: https://rocks.moonscript.org/modules/rjpcomputing/luaunit
x make a difference between errors and failures
x lua 5.3 
x travis lua 5.3
x compatibility with LuaUnit v2.0 of rjbcomputing
x provide a legacy wrapFunction()

Done since 3.0:
===============
x check documentation link glitch to TAP 
x doc: report how to handle global space pollution/restriction
x doc: adapt all examples to new way of requireing luaunit
x less global space pollution
x doc: move description of table printing to an annex
x validate well-formed XML with a DTD
x validate test output (TAP, ...) with functional tests
x test failures, verify that output is correct
x improve testresult: contain the list of tests, with status of each test
x strip luaunit stack more intelligently: exclude content of luaunit
x mention mailing-list in README.md
x mention version in documentation
x mention mailing-list
x mention the new global variable config for displaying table content
x fix display of tables with recursive references
x improve display of nested tables in error messages
x improve display of multiline strings in error messages

x Junit XML Ouptut:
	x test and fix xml escaping
	x validate xml with apache and jenkins schemas
	+ xml format:
		- add proper xml formatting header
		- report number of failures within <testsuite> element
		- report duration
		- add properties describe the environment

Done:
============
x add email to report vulnerabilities in private
x add other types of output
x assert with matching of the error message
x finish user documentation
x switch version 3.0
x add assertMatch for strings
x document --name
x improve junit xml output (one file, choice of filename) 
x display number of non selected tests
x assertIs with all types
x mention one file distribution
x improve TAP output: pre-calculate test numbers, display test summary as comment
x test error messages of assertStrMatches and all error functions
x assertNil + assertNotNil
x readthedocs integration
x add travis-ci badges to README
x filter by pattern
x support --version
x support --help
x replace methodInstance with real test name in reports
x better error messages for wrong command line option, or wrong output type
x control verbosity and output type with command line
x display time to run all tests
x move all assertions together
x better error display of assertIsXXX functions
x add assertContains for strings
x add assertIsNumber, assertIsXXX
x table assertions
x sequence asserts
x compatibilty tests with several version of lua
x add assertNotEquals

Release TODO:
=============
- all tests green in Travis and AppVeyor
- doc is green in read-the-docs
- documentation is updated with release content
- doit.py runtests success
- tag set on the code
- upload release to GitHub
- prepare luarocks and upload to luarocks
- verify smooth installation of luarocks
- annonce release on lua mailing-list















