- What is Tester Web?
- Advantages and disadvantages of Tester Web
- Pre-requisites
- Downloading latest release
- Building from sources
- Installing
- Usage
- Thanks to
- License
- Libraries used by Tester Web
Tester Web is an HTTP web server to hold competitive programming contests. Tester Web is based on Tester testing backend. It is suitable to hold local contests for small amount of participants.
The main advantages are:
- Tester Web is very easy to install.
- Simplicity in use (no many options, it's easy to add a problem or a contest to it).
- Problems and contests can be accessed by many users. You can also choose access rights for each user.
- It will work on any machine under Windows and GNU/Linux.
- The dependency list is very small: the compilers (
fpc
,gcc
,g++
) must be installed. There are no other dependencies.
The disadvantages are:
- Tester Web is not designed to hold big contests with hundreds of participants and doesn't support distributed testing on many machines.
- No HTTPS support.
- Sometimes Tester Web may be slow (will be optimized in the next versions).
- Currenty there is no sandboxing. GNU/Linux users may use the patch for Linux kernel from Ejudge authors (info), which can be downloaded at ejudge.ru. This patch will work because Tester Web uses Ejudge libraries for testing.
-
At first, you will need a computer 😃
-
1 GB RAM (recommended 2 GB or more)
-
Free Pascal Compiler (for Pascal) and GNU GCC Compiler (for C/C++) installed. For Windows, paths to the compiler binaries must be set in
PATH
environment variable. Tester web will not launch without the compliers.
- Recommended Windows versions are 7, 8, 8.1 or 10 (64-bit).
-
Tested on Ubuntu 16.04, 17.10 (64-bit), Debian 9, 10 (64-bit), but should work on other popular GNU/Linux distros.
-
Some checkers for problems may come only in EXE file, so you should install Wine to launch them.
Latest release of Tester Web can be found here.
- To build tester from sources, you will need Lazarus IDE (recommended version is 1.8.4) with Free Pascal Compiler (recommended version is 3.0.4) and GNU GCC Compiler. Also install WebLaz package into your Lazarus IDE.
-
Use the environment variable
PATH
to specify paths to Lazarus IDE directory and to GNU GCC'sbin
directory. -
You will need Git Bash.
-
You will need Git.
-
Also you can build inside Docker and build a docker image with Tester Web. It is optional; building without Docker is also supported.
To build Tester Web from sources, follow these steps:
$ git clone https://github.com/alex65536/tester-web
$ cd tester-web
$ git submodule init
$ git submodule update
$ cd build
$ ./build_all.sh
This will build the archive with Tester Web distribution. The archive will be located in <repo dir>/package.zip
.
You can also use Docker to build Tester Web. Here are the steps:
$ git clone https://github.com/alex65536/tester-web
$ cd tester-web
$ git submodule init
$ git submodule update
$ cd build
$ ./build_with_docker.sh
After the build succeeds, you will have package.zip
, just like in the previous step.
When you get package.zip
after building Tester Web, you can also build a Docker image with it. To do this, use build/build_docker_image.sh
.
Installing Tester Web is quite simple:
-
Get the Tester Web distribution archive (download or build it) and unpack it anywhere you want.
-
Run the server program located in
<unpacked archive>/bin/tsweb
(the ending of the filename depends on the platform you are using). The working dir must be the same as the directory where the server binary is located! -
Now log in as the server owner. Find the username and password in the configuration file stored in
<home dir>/tsweb/data/config.ini
. The keysdefaults.password
anddefaults.userName
in section[owner]
of the config file store the default username and password. It's recommended to change the password after your first login. -
Now the server it set. Congratulations! 😃
You can also use Tester Web inside a Docker container. There are no prebuilt images, you should build it yourself (see above).
Alternatively, you can use a Docker image by Ivan Udovin (link). This image is also smaller.
Coming soon ...
Ivan Udovin for providing the scripts to build a Docker image and to build inside Docker.
Tester Web is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
fcl-web
which comes with Free Pascal Compiler, that impements HTTP protocol. -
Some other libraries (can be found in
<repo dir>/third-party
):-
Hashing library for Pascal, can be found at http://www.wolfgang-ehrhardt.de/crchash_en.html.
-
SyntaxHighlighter, to view sources of submissions.
-
-
Tester also uses some exec.h, exec.c and some other source files from Ejudge. These files are made up into timerlib.