Commit graph

27 commits

Author SHA1 Message Date
Nathaniel
f9fcffbb4d
Safety Check: Part 2 -- Implement and Integrate Checks
Implement a safety check mechanism on object_database, based on the
safety_check_policy abstract interface. Create two standard
implementations of the safety_check_policy interface, one
(null_safety_check) which allows all modifications unconditionally, and
the other (database_lock_safety_check) which allows modifications only
when unlocked.

Integrate these safety checks into chain::database and plugins, so that
the consensus databases are locked at all times except during core
consensus code pathways. Also ensures that databases are re-locked when
calling code outside of consensus pathways from consensus pathways.

To make this work, it was necessary to move two objects from the
consensus object spaces to a new API object space. The
operation_history_object and account_transaction_history_object were
moved to the API object space, as they are not actually used by
consensus and are maintained by a plugin (which can no longer modify the
consensus object spaces, due to the safety checks).

Finally, add a mechanism to application and chain::database, which
allows the chain to start in "unit testing mode" and allows unchecked
actions upon the database within delimited scopes. This was necessary
because many tests edit the database directly to set up the environment
for their respective tests. This mode is activated by database_fixture so
tests can utilize it conveniently, but it is architecturally difficult to
enable this mode in production, i.e. from a plugin.
2022-03-12 14:04:08 -06:00
Nathaniel
f667fda2e4
Merge remote-tracking branch 'origin/beatrice' into to-upstream 2022-01-26 13:16:02 -06:00
Nathan Hourt
906ffa6351 Fix tests better
The solution being used for initializing the boost test modules is
now deprecated, so update it to use the global test fixture instead
2021-11-11 14:38:36 -05:00
Nathan Hourt
8a6bae6006 Fix tests
These tests did not properly define their BOOST_TEST_MODULE macro,
causing linking to fail in some environments.
2021-11-11 14:35:53 -05:00
serkixenos
cb786554fc
Remove as much warnings from build log as possible (#400)
* Remove as much warnings from build log as possible
2020-12-18 14:23:37 +01:00
Nathan Hourt
1c0de74aa7
General fixes
Fix warnings, build issues, unused code, etc.
2020-08-23 14:51:45 -05:00
Peter Conrad
d25604e467
Refactored tournament_helper into common files 2018-10-10 14:25:57 +02:00
Peter Conrad
0a2af8afb2 Merge remote-tracking branch 'origin/baxter' 2018-09-04 14:52:48 +02:00
kstdl
342e6db610 inital 2017-05-25 12:13:59 +03:00
Roman Olearski
94d681181c adding tournament test case for joinig with buy-in with different asset 2017-04-14 17:44:36 +02:00
Roman Olearski
83c5be13f6 completing creating tournament test cases for assertions 2017-04-14 13:49:55 +02:00
Roman Olearski
7463cc28c6 implementing creating tournament test cases for assertions 2017-04-13 21:00:14 +02:00
Roman Olearski
c351abc09a completing tournament test cases for assertions - joining, leaving 2017-04-13 16:36:39 +02:00
Roman Olearski
509867655f implementing tournament test cases for assertions 2017-04-12 17:26:51 +02:00
Roman Olearski
647ac1fa1e Merge branch 'rock-paper-scissors' of http://syncad.storm.pl:56780/blocktrades/graphene into rock-paper-scissors 2017-04-11 17:06:31 +02:00
Roman Olearski
35ee4e1c92 minor change in tournaments test 2017-04-11 17:03:02 +02:00
Eric Frias
f7113d3d05 [DLN] change parameters to tournament_leave_operation to specify the account canceling the registration instead of the payer. The canceling acount must be either the payer or the player. Don't allow a player to leave a tournament once registration has been closed. Require player to be authorized for the asset being paid as tournament prize winnings during tournament_join_operation. Tests still need to be made for these changes. 2017-04-10 23:29:02 -04:00
Roman Olearski
94ba6266c6 Implementing missing functionality (5)
Peerplays Blockchain pre-launch settings & modifications I II III
2017-04-08 15:50:13 +02:00
Roman Olearski
33e2f4fd14 Implementing missing functionality
Peerplays Blockchain pre-launch settings & modifications I II III

Merge branch 'rock-paper-scissors' of http://syncad.storm.pl:56780/blocktrades/graphene into rock-paper-scissors-ro
2017-04-07 17:28:53 +02:00
Roman Olearski
2fd34ef6ab commiting last changes 2017-04-01 13:59:52 +02:00
Roman Olearski
d9413b8780 enhancing tournaments test 2016-12-05 11:27:19 +01:00
Roman Olearski
787019617f Summary commiting changes made since the last commit
modified:   libraries/app/impacted.cpp
	modified:   libraries/chain/db_init.cpp
	modified:   libraries/chain/db_maint.cpp
	modified:   libraries/chain/game_object.cpp
	modified:   libraries/chain/include/graphene/chain/protocol/operations.hpp
	modified:   libraries/chain/include/graphene/chain/protocol/tournament.hpp
	modified:   libraries/chain/protocol/tournament.cpp
	modified:   libraries/chain/tournament_object.cpp
	modified:   libraries/wallet/wallet.cpp
	modified:   programs/witness_node/main.cpp
	modified:   tests/CMakeLists.txt
	modified:   tests/common/database_fixture.cpp
	new file:   tests/tournament/tournament_tests.cpp
2016-11-28 12:36:18 +01:00
Roman Olearski
f2c0157bb7 avoiding generating tournament payout operation if zero payout
updating tournaments tests
2016-11-25 18:01:32 +01:00
Roman Olearski
2320be1f55 tournaments tests - correcting max min calculations 2016-11-22 20:30:19 +01:00
Roman Olearski
ac9c301092 tournaments tests - randomizing number of wins 2016-11-21 20:38:49 +01:00
Roman Olearski
16e7104c8e adding two assets tournaments test 2016-11-20 18:39:48 +01:00
Roman Olearski
740b07404a implementing tournament tests 2016-11-18 19:51:38 +01:00