xaizek / rocketgit (License: AGPLv3+) (since 2018-12-09)
Light and fast Git hosting solution suitable to serve both as a hub or as a personal code storage with its tickets, pull requests, API and much more.
<root> / tests / state.php (e84f877e03b3665f2007732b7bdc0de6e9353b8f) (1,106B) (mode 100644) [raw]
<?php
error_reporting(E_ALL | E_STRICT);

$INC = "../inc";
require_once($INC . "/log.inc.php");
require_once($INC . "/db.inc.php");
require_once($INC . "/state.inc.php");
require_once($INC . "/db/struct.inc.php");

rg_log_set_file("state.log");

@unlink("state.sqlite");

$db = rg_sql_open("sqlite:state.sqlite");
if ($db === FALSE) {
	echo "Cannot create a database (" . rg_sql_error() . ")!";
	exit(1);
}

// state table
$r = rg_db_struct_run($db, FALSE);
if ($r === FALSE) {
	echo "Cannot create tables!";
	exit(1);
}

// check return for an invalid state
$r = rg_state_get($db, "asdsdsdf");
if ($r !== FALSE) {
	echo "Cannot get FALSE for an unknown key!\n";
	exit(1);
}

$r = rg_state_set($db, "a", "bau");
if ($r !== TRUE) {
	echo "Cannot get a TRUE for setting a key1 ($r)!\n";
	exit(1);
}

$r = rg_state_set($db, "a", "cucu");
if ($r !== TRUE) {
	echo "Cannot get a TRUE for setting a key2 ($r)!\n";
	exit(1);
}

$r = rg_state_get($db, "a");
if (strcmp($r, "cucu") != 0) {
	echo "Cannot get correct state ($r != cucu)!\n";
	exit(1);
}

rg_sql_close($db);

@unlink("state.sqlite");

echo "OK\n";
?>
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/rocketgit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master