added travis; moved rockspecs; tests and docs modified

This commit is contained in:
Vadim A. Misbakh-Soloviov 2017-04-09 13:15:06 +07:00
parent 06da2e960e
commit a04ab7d9cd
No known key found for this signature in database
GPG Key ID: 26503D349B3B334B
11 changed files with 252 additions and 6 deletions

42
.travis.yml Normal file
View File

@ -0,0 +1,42 @@
language: c
sudo: false
env:
global:
- LUAROCKS=2.3.0
matrix:
- LUA=lua5.1
- LUA=lua5.2
- LUA=lua5.3
- LUA=luajit # latest stable version (2.0.4)
- LUA=luajit2.0 # current head of 2.0 branch
- LUA=luajit2.1 # current head of 2.1 branch
#branches:
# only:
# - master
before_install:
- source .travis/setenv_lua.sh
- pip install --user cpp-coveralls
- luarocks install Lua-cURL --server=https://luarocks.org/dev
- luarocks install luacov-coveralls --server=https://luarocks.org/dev
- luarocks install lunitx
install:
- luarocks make rockspecs/htmlparser-scm-0.rockspec CFLAGS="-O2 -fPIC -ftest-coverage -fprofile-arcs" LIBFLAG="-shared --coverage"
script:
- cd tst
- lua -e "print(require'cURL'.version())"
- lunit.sh init.lua
after_success:
- coveralls -b .. -r .. -i ./src --dump c.report.json
- luacov-coveralls -j c.report.json -v
notifications:
email:
on_success: change
on_failure: always

15
.travis/platform.sh Normal file
View File

@ -0,0 +1,15 @@
if [ -z "${PLATFORM:-}" ]; then
PLATFORM=$TRAVIS_OS_NAME;
fi
if [ "$PLATFORM" == "osx" ]; then
PLATFORM="macosx";
fi
if [ -z "$PLATFORM" ]; then
if [ "$(uname)" == "Linux" ]; then
PLATFORM="linux";
else
PLATFORM="macosx";
fi;
fi

3
.travis/setenv_lua.sh Normal file
View File

@ -0,0 +1,3 @@
export PATH=${PATH}:$HOME/.lua:$HOME/.local/bin:${TRAVIS_BUILD_DIR}/install/luarocks/bin
bash .travis/setup_lua.sh
eval `$HOME/.lua/luarocks path`

122
.travis/setup_lua.sh Normal file
View File

@ -0,0 +1,122 @@
#! /bin/bash
# A script for setting up environment for travis-ci testing.
# Sets up Lua and Luarocks.
# LUA must be "lua5.1", "lua5.2" or "luajit".
# luajit2.0 - master v2.0
# luajit2.1 - master v2.1
set -eufo pipefail
LUAJIT_VERSION="2.0.4"
LUAJIT_BASE="LuaJIT-$LUAJIT_VERSION"
source .travis/platform.sh
LUA_HOME_DIR=$TRAVIS_BUILD_DIR/install/lua
LR_HOME_DIR=$TRAVIS_BUILD_DIR/install/luarocks
mkdir $HOME/.lua
LUAJIT="no"
if [ "$PLATFORM" == "macosx" ]; then
if [ "$LUA" == "luajit" ]; then
LUAJIT="yes";
fi
if [ "$LUA" == "luajit2.0" ]; then
LUAJIT="yes";
fi
if [ "$LUA" == "luajit2.1" ]; then
LUAJIT="yes";
fi;
elif [ "$(expr substr $LUA 1 6)" == "luajit" ]; then
LUAJIT="yes";
fi
mkdir -p "$LUA_HOME_DIR"
if [ "$LUAJIT" == "yes" ]; then
if [ "$LUA" == "luajit" ]; then
curl --location https://github.com/LuaJIT/LuaJIT/archive/v$LUAJIT_VERSION.tar.gz | tar xz;
else
git clone https://github.com/LuaJIT/LuaJIT.git $LUAJIT_BASE;
fi
cd $LUAJIT_BASE
if [ "$LUA" == "luajit2.1" ]; then
git checkout v2.1;
# force the INSTALL_TNAME to be luajit
perl -i -pe 's/INSTALL_TNAME=.+/INSTALL_TNAME= luajit/' Makefile
fi
make && make install PREFIX="$LUA_HOME_DIR"
ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/luajit
ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/lua;
else
if [ "$LUA" == "lua5.1" ]; then
curl http://www.lua.org/ftp/lua-5.1.5.tar.gz | tar xz
cd lua-5.1.5;
elif [ "$LUA" == "lua5.2" ]; then
curl http://www.lua.org/ftp/lua-5.2.4.tar.gz | tar xz
cd lua-5.2.4;
elif [ "$LUA" == "lua5.3" ]; then
curl http://www.lua.org/ftp/lua-5.3.2.tar.gz | tar xz
cd lua-5.3.2;
fi
# Build Lua without backwards compatibility for testing
perl -i -pe 's/-DLUA_COMPAT_(ALL|5_2)//' src/Makefile
make $PLATFORM
make INSTALL_TOP="$LUA_HOME_DIR" install;
ln -s $LUA_HOME_DIR/bin/lua $HOME/.lua/lua
ln -s $LUA_HOME_DIR/bin/luac $HOME/.lua/luac;
fi
cd $TRAVIS_BUILD_DIR
lua -v
LUAROCKS_BASE=luarocks-$LUAROCKS
curl --location http://luarocks.org/releases/$LUAROCKS_BASE.tar.gz | tar xz
cd $LUAROCKS_BASE
if [ "$LUA" == "luajit" ]; then
./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR";
elif [ "$LUA" == "luajit2.0" ]; then
./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR";
elif [ "$LUA" == "luajit2.1" ]; then
./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.1" --prefix="$LR_HOME_DIR";
else
./configure --with-lua="$LUA_HOME_DIR" --prefix="$LR_HOME_DIR"
fi
make build && make install
ln -s $LR_HOME_DIR/bin/luarocks $HOME/.lua/luarocks
cd $TRAVIS_BUILD_DIR
luarocks --version
rm -rf $LUAROCKS_BASE
if [ "$LUAJIT" == "yes" ]; then
rm -rf $LUAJIT_BASE;
elif [ "$LUA" == "lua5.1" ]; then
rm -rf lua-5.1.5;
elif [ "$LUA" == "lua5.2" ]; then
rm -rf lua-5.2.4;
elif [ "$LUA" == "lua5.3" ]; then
rm -rf lua-5.3.2;
fi

View File

@ -3,12 +3,12 @@
<head> <head>
<title>Htmlparser LuaRock Readme</title> <title>Htmlparser LuaRock Readme</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="Refresh" content="3; url=http://wscherphof.github.io/lua-htmlparser/" /> <meta http-equiv="Refresh" content="3; url=http://msva.github.io/lua-htmlparser/" />
</head> </head>
<body> <body>
<p>You are being redirected to the homepage of the <p>You are being redirected to the homepage of the
<a href="http://wscherphof.github.io/lua-htmlparser/">Htmlparser LuaRock</a>. <a href="http://msva.github.io/lua-htmlparser/">Htmlparser LuaRock</a>.
</p> </p>
<p>If you are not redirected after a few seconds, please click on the link above!</p> <p>If you are not redirected after a few seconds, please click on the link above!</p>
</body> </body>
</html> </html>

View File

@ -62,4 +62,4 @@
</section> </section>
</section> </section>
</body> </body>
</html> </html>

View File

@ -1,4 +1,4 @@
require("luarocks.loader") --require("luarocks.loader")
-- Omit next line in actual module clients; it's only to support development of the module itself -- Omit next line in actual module clients; it's only to support development of the module itself
package.path = "../src/?.lua;" .. package.path package.path = "../src/?.lua;" .. package.path
local htmlparser = require("htmlparser") local htmlparser = require("htmlparser")

50
tst/.luacov Normal file
View File

@ -0,0 +1,50 @@
--- Global configuration file. Copy, customize and store in your
-- project folder as '.luacov' for project specific configuration
-- @class module
-- @name luacov.defaults
return {
-- default filename to load for config options if not provided
-- only has effect in 'luacov.defaults.lua'
configfile = ".luacov",
-- filename to store stats collected
statsfile = "luacov.stats.out",
-- filename to store report
reportfile = "luacov.report.json",
-- Run reporter on completion? (won't work for ticks)
runreport = false,
-- Delete stats file after reporting?
deletestats = false,
-- Patterns for files to include when reporting
-- all will be included if nothing is listed
-- (exclude overrules include, do not include
-- the .lua extension)
include = {
"/foo$",
"/foo/.+$",
},
-- Patterns for files to exclude when reporting
-- all will be included if nothing is listed
-- (exclude overrules include, do not include
-- the .lua extension)
exclude = {
},
-- configuration for luacov-coveralls reporter
coveralls = {
-- debug = true;
pathcorrect = {
{"^.-/share/lua/5.%d/", "src/lua/"};
},
},
}

View File

@ -1,7 +1,21 @@
-- Omit next line in actual module clients; it's only to support development of the module itself -- Omit next line in actual module clients; it's only to support development of the module itself
package.path = "../src/?.lua;" .. package.path package.path = "../src/?.lua;" .. package.path
local lunitx = require("lunitx") pcall(require, "luacov")
print("------------------------------------")
print("Lua version: " .. (jit and jit.version or _VERSION))
print("------------------------------------")
print("")
local HAS_RUNNER = not not lunitx
local TEST_CASE = lunitx.TEST_CASE
local LUA_VER = _VERSION
local unpack, pow, bit32 = unpack, math.pow, bit32
local _ENV = TEST_CASE"some_test_case"
module("html", lunitx.testcase, package.seeall) module("html", lunitx.testcase, package.seeall)
local htmlparser = require("htmlparser") local htmlparser = require("htmlparser")