From 87f1d9ca2c7665410904297ff774f8273a5a0c3f Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Sun, 11 Aug 2024 19:24:07 +0300 Subject: [PATCH 1/3] actor test case --- memdriver/driver.go | 2 +- memdriver/tests/actor_test.go | 14 ++++ sqlitedriver/driver.go | 2 +- sqlitedriver/tests/actor_test.go | 21 +++++ stddoer/{recovery.go => recoverer.go} | 14 ++-- testcases/actor.go | 109 ++++++++++++++++++++++++++ 6 files changed, 153 insertions(+), 9 deletions(-) create mode 100644 memdriver/tests/actor_test.go create mode 100644 sqlitedriver/tests/actor_test.go rename stddoer/{recovery.go => recoverer.go} (88%) create mode 100644 testcases/actor.go diff --git a/memdriver/driver.go b/memdriver/driver.go index 097c9b9..c5b48eb 100644 --- a/memdriver/driver.go +++ b/memdriver/driver.go @@ -31,7 +31,7 @@ func New() *Driver { stddoer.Resume(), stddoer.End(), stddoer.Noop(), - stddoer.Recovery(time.Millisecond * 500), + stddoer.Recoverer(time.Millisecond * 500), stddoer.NewSerializer(), stddoer.NewDeserializer(), diff --git a/memdriver/tests/actor_test.go b/memdriver/tests/actor_test.go new file mode 100644 index 0000000..e22cb57 --- /dev/null +++ b/memdriver/tests/actor_test.go @@ -0,0 +1,14 @@ +package tests + +import ( + "testing" + + "github.com/makasim/flowstate/memdriver" + "github.com/makasim/flowstate/testcases" +) + +func TestActor(t *testing.T) { + d := memdriver.New() + + testcases.Actor(t, d, d) +} diff --git a/sqlitedriver/driver.go b/sqlitedriver/driver.go index f6d1398..f0bc374 100644 --- a/sqlitedriver/driver.go +++ b/sqlitedriver/driver.go @@ -36,7 +36,7 @@ func New(db *sql.DB) *Driver { stddoer.Resume(), stddoer.End(), stddoer.Noop(), - stddoer.Recovery(time.Millisecond * 500), + stddoer.Recoverer(time.Millisecond * 500), stddoer.NewSerializer(), stddoer.NewDeserializer(), flowstate.DefaultReferenceDataDoer, diff --git a/sqlitedriver/tests/actor_test.go b/sqlitedriver/tests/actor_test.go new file mode 100644 index 0000000..e6ca5c8 --- /dev/null +++ b/sqlitedriver/tests/actor_test.go @@ -0,0 +1,21 @@ +package tests + +import ( + "database/sql" + "testing" + + "github.com/makasim/flowstate/sqlitedriver" + "github.com/makasim/flowstate/testcases" + "github.com/stretchr/testify/require" +) + +func TestActor(t *testing.T) { + db, err := sql.Open("sqlite3", `:memory:`) + require.NoError(t, err) + db.SetMaxOpenConns(1) + defer db.Close() + + d := sqlitedriver.New(db) + + testcases.Actor(t, d, d) +} diff --git a/stddoer/recovery.go b/stddoer/recoverer.go similarity index 88% rename from stddoer/recovery.go rename to stddoer/recoverer.go index 5034684..d533926 100644 --- a/stddoer/recovery.go +++ b/stddoer/recoverer.go @@ -10,7 +10,7 @@ import ( "github.com/makasim/flowstate" ) -type RecoveryDoer struct { +type RecovererDoer struct { failoverDur time.Duration wl flowstate.WatchListener @@ -20,19 +20,19 @@ type RecoveryDoer struct { log []flowstate.State } -func Recovery(failoverDur time.Duration) flowstate.Doer { - return &RecoveryDoer{ +func Recoverer(failoverDur time.Duration) flowstate.Doer { + return &RecovererDoer{ failoverDur: failoverDur, doneCh: make(chan struct{}), stoppedCh: make(chan struct{}), } } -func (d *RecoveryDoer) Do(_ flowstate.Command) error { +func (d *RecovererDoer) Do(_ flowstate.Command) error { return flowstate.ErrCommandNotSupported } -func (d *RecoveryDoer) Init(e *flowstate.Engine) error { +func (d *RecovererDoer) Init(e *flowstate.Engine) error { cmd := flowstate.Watch(nil) if err := e.Do(cmd); err != nil { return err @@ -65,7 +65,7 @@ func (d *RecoveryDoer) Init(e *flowstate.Engine) error { return nil } -func (d *RecoveryDoer) checkLog() error { +func (d *RecovererDoer) checkLog() error { visited := make(map[flowstate.StateID]struct{}) @@ -125,7 +125,7 @@ func (d *RecoveryDoer) checkLog() error { return nil } -func (d *RecoveryDoer) Shutdown(ctx context.Context) error { +func (d *RecovererDoer) Shutdown(ctx context.Context) error { d.wl.Close() close(d.doneCh) diff --git a/testcases/actor.go b/testcases/actor.go new file mode 100644 index 0000000..f0c4534 --- /dev/null +++ b/testcases/actor.go @@ -0,0 +1,109 @@ +package testcases + +import ( + "context" + "fmt" + "time" + + "github.com/makasim/flowstate" + "github.com/stretchr/testify/require" + "go.uber.org/goleak" +) + +func Actor(t TestingT, d flowstate.Doer, fr flowRegistry) { + defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) + + trkr := &Tracker{IncludeTaskID: true} + + fr.SetFlow("actor", flowstate.FlowFunc(func(stateCtx *flowstate.StateCtx, e *flowstate.Engine) (flowstate.Command, error) { + Track(stateCtx, trkr) + w, err := flowstate.DoWatch(e, flowstate.Watch(map[string]string{ + "actor.foo": "inbox", + })) + if err != nil { + return nil, err + } + defer w.Close() + + t := time.NewTimer(time.Millisecond * 100) + for { + select { + case msgState := <-w.Listen(): + Track(msgState.CopyToCtx(&flowstate.StateCtx{}), trkr) + // do stuff here + case <-t.C: + // make sure recovery is not triggered, t.C must be less than failoverDur + if err := e.Do(flowstate.Commit( + flowstate.Transit(stateCtx, `actor`), + )); err != nil { + return nil, err + } + case <-stateCtx.Done(): + return flowstate.Commit( + flowstate.Pause(stateCtx), + ), nil + } + } + })) + fr.SetFlow("inbox", flowstate.FlowFunc(func(stateCtx *flowstate.StateCtx, e *flowstate.Engine) (flowstate.Command, error) { + return nil, fmt.Errorf("must never be executed") + })) + + e, err := flowstate.NewEngine(d) + require.NoError(t, err) + defer func() { + sCtx, sCtxCancel := context.WithTimeout(context.Background(), time.Second*5) + defer sCtxCancel() + + require.NoError(t, e.Shutdown(sCtx)) + }() + + actorStateCtx := &flowstate.StateCtx{ + Current: flowstate.State{ + ID: "actorTID", + }, + } + + require.NoError(t, e.Do( + flowstate.Commit( + flowstate.Transit(actorStateCtx, `actor`), + ), + flowstate.Execute(actorStateCtx), + )) + + msg0StateCtx := &flowstate.StateCtx{ + Current: flowstate.State{ + ID: "msg0TID", + Labels: map[string]string{ + "actor.foo": "inbox", + }, + }, + } + + require.NoError(t, e.Do( + flowstate.Commit( + flowstate.Pause(msg0StateCtx).WithTransit(`inbox`), + ), + )) + + msg1StateCtx := &flowstate.StateCtx{ + Current: flowstate.State{ + ID: "msg1TID", + Labels: map[string]string{ + "actor.foo": "inbox", + }, + }, + } + + require.NoError(t, e.Do( + flowstate.Commit( + flowstate.Pause(msg1StateCtx).WithTransit(`inbox`), + ), + )) + + require.Equal(t, []string{ + "actor:actorTID", + "inbox:msg0TID", + "inbox:msg1TID", + }, trkr.WaitVisitedEqual(t, []string{`actor:actorTID`, `inbox:msg0TID`, `inbox:msg1TID`}, time.Millisecond*600)) +} From 3871bca04c49670c19ff45987060305d433f768e Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Sat, 24 Aug 2024 20:49:53 +0300 Subject: [PATCH 2/3] test suite, simplify test cases testing --- memdriver/suite_test.go | 18 ++++ memdriver/tests/actor_test.go | 14 --- memdriver/tests/call_flow_test.go | 14 --- memdriver/tests/call_flow_with_commit_test.go | 14 --- memdriver/tests/call_flow_with_watch_test.go | 14 --- memdriver/tests/condition_test.go | 14 --- memdriver/tests/data_flow_config_test.go | 14 --- memdriver/tests/data_store_get_test.go | 14 --- .../tests/data_store_get_with_commit_test.go | 14 --- .../delay_delayed_win_with_commit_test.go | 14 --- memdriver/tests/delay_egnine_do_test.go | 14 --- memdriver/tests/delay_paused_test.go | 14 --- .../tests/delay_paused_with_commit_test.go | 14 --- memdriver/tests/delay_return_test.go | 14 --- .../delay_transited_win_with_commit_test.go | 14 --- memdriver/tests/fork_join_first_wins_test.go | 14 --- memdriver/tests/fork_join_last_wins_test.go | 14 --- memdriver/tests/fork_test.go | 14 --- memdriver/tests/fork_with_commit_test.go | 14 --- memdriver/tests/get_by_id_and_rev_test.go | 14 --- memdriver/tests/get_latest_by_id_test.go | 14 --- memdriver/tests/get_latest_by_label_test.go | 14 --- memdriver/tests/get_not_found_test.go | 14 --- memdriver/tests/mutex_test.go | 14 --- memdriver/tests/queue_test.go | 14 --- memdriver/tests/rate_limit_test.go | 14 --- memdriver/tests/recovery_always_fail_test.go | 14 --- .../tests/recovery_first_attempt_fail_test.go | 14 --- memdriver/tests/single_node_test.go | 14 --- .../tests/three_consequent_nodes_test.go | 14 --- memdriver/tests/two_consequent_nodes_test.go | 14 --- .../two_consequent_nodes_with_commit_test.go | 14 --- memdriver/tests/watch_labels_test.go | 14 --- memdriver/tests/watch_or_labels_test.go | 14 --- memdriver/tests/watch_since_latest_test.go | 14 --- memdriver/tests/watch_since_rev_test.go | 14 --- memdriver/tests/watch_since_time_test.go | 14 --- sqlitedriver/suite_test.go | 29 ++++++ sqlitedriver/tests/actor_test.go | 21 ---- sqlitedriver/tests/call_flow_test.go | 21 ---- .../tests/call_flow_with_commit_test.go | 21 ---- .../tests/call_flow_with_watch_test.go | 21 ---- sqlitedriver/tests/condition_test.go | 21 ---- sqlitedriver/tests/data_flow_config_test.go | 21 ---- sqlitedriver/tests/data_store_get_test.go | 21 ---- .../tests/data_store_get_with_commit_test.go | 21 ---- .../delay_delayed_win_with_commit_test.go | 21 ---- sqlitedriver/tests/delay_egnine_do_test.go | 21 ---- sqlitedriver/tests/delay_paused_test.go | 21 ---- .../tests/delay_paused_with_commit_test.go | 21 ---- sqlitedriver/tests/delay_return_test.go | 21 ---- .../delay_transited_win_with_commit_test.go | 21 ---- .../tests/fork_join_first_wins_test.go | 21 ---- .../tests/fork_join_last_wins_test.go | 21 ---- sqlitedriver/tests/fork_test.go | 21 ---- sqlitedriver/tests/fork_with_commit_test.go | 21 ---- sqlitedriver/tests/get_by_id_and_rev_test.go | 21 ---- sqlitedriver/tests/get_latest_by_id_test.go | 21 ---- .../tests/get_latest_by_label_test.go | 21 ---- sqlitedriver/tests/get_not_found_test.go | 21 ---- sqlitedriver/tests/mutex_test.go | 21 ---- sqlitedriver/tests/queue_test.go | 21 ---- sqlitedriver/tests/rate_limit_test.go | 21 ---- .../tests/recovery_always_fail_test.go | 21 ---- .../tests/recovery_first_attempt_fail_test.go | 21 ---- sqlitedriver/tests/single_node_test.go | 21 ---- .../tests/three_consequent_nodes_test.go | 21 ---- .../tests/two_consequent_nodes_test.go | 21 ---- .../two_consequent_nodes_with_commit_test.go | 21 ---- sqlitedriver/tests/watch_labels_test.go | 21 ---- sqlitedriver/tests/watch_or_labels_test.go | 21 ---- sqlitedriver/tests/watch_since_latest_test.go | 21 ---- sqlitedriver/tests/watch_since_rev_test.go | 21 ---- sqlitedriver/tests/watch_since_time_test.go | 21 ---- testcases/actor.go | 2 +- testcases/call_flow.go | 2 +- testcases/call_flow_with_commit.go | 2 +- testcases/call_flow_with_watch.go | 2 +- testcases/condition.go | 2 +- testcases/data_flow_config.go | 2 +- testcases/data_store_get.go | 2 +- testcases/data_store_get_with_commit.go | 2 +- testcases/delay_delayed_win_with_commit.go | 2 +- testcases/delay_engine_do.go | 2 +- testcases/delay_paused.go | 2 +- testcases/delay_paused_with_commit.go | 2 +- testcases/delay_return.go | 2 +- testcases/delay_transited_win_with_commit.go | 2 +- testcases/fork.go | 2 +- testcases/fork_join_first_wins.go | 2 +- testcases/fork_join_last_wins.go | 2 +- testcases/fork_with_commit.go | 2 +- testcases/get_by_id_and_rev.go | 2 +- testcases/get_latest_by_id.go | 2 +- testcases/get_latest_by_label.go | 2 +- testcases/get_not_found.go | 2 +- testcases/mutex.go | 2 +- testcases/queue.go | 2 +- testcases/rate_limit.go | 2 +- testcases/recovery_always_fail.go | 2 +- testcases/recovery_first_attempt_fail.go | 2 +- testcases/single_node.go | 2 +- testcases/suite.go | 97 +++++++++++++++++++ testcases/three_consequent_nodes.go | 2 +- testcases/two_consequent_nodes.go | 9 +- testcases/two_consequent_nodes_with_commit.go | 4 +- testcases/watch_labels.go | 2 +- testcases/watch_or_labels.go | 2 +- testcases/watch_since_latest.go | 2 +- testcases/watch_since_rev.go | 2 +- testcases/watch_since_time.go | 2 +- 111 files changed, 181 insertions(+), 1304 deletions(-) create mode 100644 memdriver/suite_test.go delete mode 100644 memdriver/tests/actor_test.go delete mode 100644 memdriver/tests/call_flow_test.go delete mode 100644 memdriver/tests/call_flow_with_commit_test.go delete mode 100644 memdriver/tests/call_flow_with_watch_test.go delete mode 100644 memdriver/tests/condition_test.go delete mode 100644 memdriver/tests/data_flow_config_test.go delete mode 100644 memdriver/tests/data_store_get_test.go delete mode 100644 memdriver/tests/data_store_get_with_commit_test.go delete mode 100644 memdriver/tests/delay_delayed_win_with_commit_test.go delete mode 100644 memdriver/tests/delay_egnine_do_test.go delete mode 100644 memdriver/tests/delay_paused_test.go delete mode 100644 memdriver/tests/delay_paused_with_commit_test.go delete mode 100644 memdriver/tests/delay_return_test.go delete mode 100644 memdriver/tests/delay_transited_win_with_commit_test.go delete mode 100644 memdriver/tests/fork_join_first_wins_test.go delete mode 100644 memdriver/tests/fork_join_last_wins_test.go delete mode 100644 memdriver/tests/fork_test.go delete mode 100644 memdriver/tests/fork_with_commit_test.go delete mode 100644 memdriver/tests/get_by_id_and_rev_test.go delete mode 100644 memdriver/tests/get_latest_by_id_test.go delete mode 100644 memdriver/tests/get_latest_by_label_test.go delete mode 100644 memdriver/tests/get_not_found_test.go delete mode 100644 memdriver/tests/mutex_test.go delete mode 100644 memdriver/tests/queue_test.go delete mode 100644 memdriver/tests/rate_limit_test.go delete mode 100644 memdriver/tests/recovery_always_fail_test.go delete mode 100644 memdriver/tests/recovery_first_attempt_fail_test.go delete mode 100644 memdriver/tests/single_node_test.go delete mode 100644 memdriver/tests/three_consequent_nodes_test.go delete mode 100644 memdriver/tests/two_consequent_nodes_test.go delete mode 100644 memdriver/tests/two_consequent_nodes_with_commit_test.go delete mode 100644 memdriver/tests/watch_labels_test.go delete mode 100644 memdriver/tests/watch_or_labels_test.go delete mode 100644 memdriver/tests/watch_since_latest_test.go delete mode 100644 memdriver/tests/watch_since_rev_test.go delete mode 100644 memdriver/tests/watch_since_time_test.go create mode 100644 sqlitedriver/suite_test.go delete mode 100644 sqlitedriver/tests/actor_test.go delete mode 100644 sqlitedriver/tests/call_flow_test.go delete mode 100644 sqlitedriver/tests/call_flow_with_commit_test.go delete mode 100644 sqlitedriver/tests/call_flow_with_watch_test.go delete mode 100644 sqlitedriver/tests/condition_test.go delete mode 100644 sqlitedriver/tests/data_flow_config_test.go delete mode 100644 sqlitedriver/tests/data_store_get_test.go delete mode 100644 sqlitedriver/tests/data_store_get_with_commit_test.go delete mode 100644 sqlitedriver/tests/delay_delayed_win_with_commit_test.go delete mode 100644 sqlitedriver/tests/delay_egnine_do_test.go delete mode 100644 sqlitedriver/tests/delay_paused_test.go delete mode 100644 sqlitedriver/tests/delay_paused_with_commit_test.go delete mode 100644 sqlitedriver/tests/delay_return_test.go delete mode 100644 sqlitedriver/tests/delay_transited_win_with_commit_test.go delete mode 100644 sqlitedriver/tests/fork_join_first_wins_test.go delete mode 100644 sqlitedriver/tests/fork_join_last_wins_test.go delete mode 100644 sqlitedriver/tests/fork_test.go delete mode 100644 sqlitedriver/tests/fork_with_commit_test.go delete mode 100644 sqlitedriver/tests/get_by_id_and_rev_test.go delete mode 100644 sqlitedriver/tests/get_latest_by_id_test.go delete mode 100644 sqlitedriver/tests/get_latest_by_label_test.go delete mode 100644 sqlitedriver/tests/get_not_found_test.go delete mode 100644 sqlitedriver/tests/mutex_test.go delete mode 100644 sqlitedriver/tests/queue_test.go delete mode 100644 sqlitedriver/tests/rate_limit_test.go delete mode 100644 sqlitedriver/tests/recovery_always_fail_test.go delete mode 100644 sqlitedriver/tests/recovery_first_attempt_fail_test.go delete mode 100644 sqlitedriver/tests/single_node_test.go delete mode 100644 sqlitedriver/tests/three_consequent_nodes_test.go delete mode 100644 sqlitedriver/tests/two_consequent_nodes_test.go delete mode 100644 sqlitedriver/tests/two_consequent_nodes_with_commit_test.go delete mode 100644 sqlitedriver/tests/watch_labels_test.go delete mode 100644 sqlitedriver/tests/watch_or_labels_test.go delete mode 100644 sqlitedriver/tests/watch_since_latest_test.go delete mode 100644 sqlitedriver/tests/watch_since_rev_test.go delete mode 100644 sqlitedriver/tests/watch_since_time_test.go create mode 100644 testcases/suite.go diff --git a/memdriver/suite_test.go b/memdriver/suite_test.go new file mode 100644 index 0000000..e2d60ba --- /dev/null +++ b/memdriver/suite_test.go @@ -0,0 +1,18 @@ +package memdriver_test + +import ( + "testing" + + "github.com/makasim/flowstate" + "github.com/makasim/flowstate/memdriver" + "github.com/makasim/flowstate/testcases" +) + +func TestSuite(t *testing.T) { + s := testcases.Get(func(t testcases.TestingT) (flowstate.Doer, testcases.FlowRegistry) { + d := memdriver.New() + return d, d + }) + + s.Test(t) +} diff --git a/memdriver/tests/actor_test.go b/memdriver/tests/actor_test.go deleted file mode 100644 index e22cb57..0000000 --- a/memdriver/tests/actor_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestActor(t *testing.T) { - d := memdriver.New() - - testcases.Actor(t, d, d) -} diff --git a/memdriver/tests/call_flow_test.go b/memdriver/tests/call_flow_test.go deleted file mode 100644 index 46a91b2..0000000 --- a/memdriver/tests/call_flow_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestCallFlow(t *testing.T) { - d := memdriver.New() - - testcases.CallFlow(t, d, d) -} diff --git a/memdriver/tests/call_flow_with_commit_test.go b/memdriver/tests/call_flow_with_commit_test.go deleted file mode 100644 index 172323b..0000000 --- a/memdriver/tests/call_flow_with_commit_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestCallFlowWithCommit(t *testing.T) { - d := memdriver.New() - - testcases.CallFlowWithCommit(t, d, d) -} diff --git a/memdriver/tests/call_flow_with_watch_test.go b/memdriver/tests/call_flow_with_watch_test.go deleted file mode 100644 index a8a6b62..0000000 --- a/memdriver/tests/call_flow_with_watch_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestCallFlowWithWatch(t *testing.T) { - d := memdriver.New() - - testcases.CallFlowWithWatch(t, d, d) -} diff --git a/memdriver/tests/condition_test.go b/memdriver/tests/condition_test.go deleted file mode 100644 index a54779a..0000000 --- a/memdriver/tests/condition_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestCondition(t *testing.T) { - d := memdriver.New() - - testcases.Condition(t, d, d) -} diff --git a/memdriver/tests/data_flow_config_test.go b/memdriver/tests/data_flow_config_test.go deleted file mode 100644 index bebd3a7..0000000 --- a/memdriver/tests/data_flow_config_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestDataFlowConfig(t *testing.T) { - d := memdriver.New() - - testcases.DataFlowConfig(t, d, d) -} diff --git a/memdriver/tests/data_store_get_test.go b/memdriver/tests/data_store_get_test.go deleted file mode 100644 index 2aebdfa..0000000 --- a/memdriver/tests/data_store_get_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestDataStoreGet(t *testing.T) { - d := memdriver.New() - - testcases.DataStoreGet(t, d, d) -} diff --git a/memdriver/tests/data_store_get_with_commit_test.go b/memdriver/tests/data_store_get_with_commit_test.go deleted file mode 100644 index da22ba8..0000000 --- a/memdriver/tests/data_store_get_with_commit_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestDataStoreGetWithCommit(t *testing.T) { - d := memdriver.New() - - testcases.DataStoreGetWithCommit(t, d, d) -} diff --git a/memdriver/tests/delay_delayed_win_with_commit_test.go b/memdriver/tests/delay_delayed_win_with_commit_test.go deleted file mode 100644 index 89a139e..0000000 --- a/memdriver/tests/delay_delayed_win_with_commit_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestDelay_DelayedWin_WithCommit(t *testing.T) { - d := memdriver.New() - - testcases.Delay_DelayedWin_WithCommit(t, d, d) -} diff --git a/memdriver/tests/delay_egnine_do_test.go b/memdriver/tests/delay_egnine_do_test.go deleted file mode 100644 index 6f6e87b..0000000 --- a/memdriver/tests/delay_egnine_do_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestDelay_EngineDo(t *testing.T) { - d := memdriver.New() - - testcases.Delay_EngineDo(t, d, d) -} diff --git a/memdriver/tests/delay_paused_test.go b/memdriver/tests/delay_paused_test.go deleted file mode 100644 index c3ef14e..0000000 --- a/memdriver/tests/delay_paused_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestDelay_Paused(t *testing.T) { - d := memdriver.New() - - testcases.Delay_Paused(t, d, d) -} diff --git a/memdriver/tests/delay_paused_with_commit_test.go b/memdriver/tests/delay_paused_with_commit_test.go deleted file mode 100644 index 207c4f1..0000000 --- a/memdriver/tests/delay_paused_with_commit_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestDelay_PausedWithCommit(t *testing.T) { - d := memdriver.New() - - testcases.Delay_PausedWithCommit(t, d, d) -} diff --git a/memdriver/tests/delay_return_test.go b/memdriver/tests/delay_return_test.go deleted file mode 100644 index 59a7d20..0000000 --- a/memdriver/tests/delay_return_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestDelay_Return(t *testing.T) { - d := memdriver.New() - - testcases.Delay_Return(t, d, d) -} diff --git a/memdriver/tests/delay_transited_win_with_commit_test.go b/memdriver/tests/delay_transited_win_with_commit_test.go deleted file mode 100644 index 6309991..0000000 --- a/memdriver/tests/delay_transited_win_with_commit_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestDelay_TransitedWin_WithCommit(t *testing.T) { - d := memdriver.New() - - testcases.Delay_TransitedWin_WithCommit(t, d, d) -} diff --git a/memdriver/tests/fork_join_first_wins_test.go b/memdriver/tests/fork_join_first_wins_test.go deleted file mode 100644 index 978b540..0000000 --- a/memdriver/tests/fork_join_first_wins_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestForkJoin_FirstWins(t *testing.T) { - d := memdriver.New() - - testcases.ForkJoin_FirstWins(t, d, d) -} diff --git a/memdriver/tests/fork_join_last_wins_test.go b/memdriver/tests/fork_join_last_wins_test.go deleted file mode 100644 index 0ae11cd..0000000 --- a/memdriver/tests/fork_join_last_wins_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestForkJoin_LastWins(t *testing.T) { - d := memdriver.New() - - testcases.ForkJoin_LastWins(t, d, d) -} diff --git a/memdriver/tests/fork_test.go b/memdriver/tests/fork_test.go deleted file mode 100644 index ccbbb0a..0000000 --- a/memdriver/tests/fork_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestFork(t *testing.T) { - d := memdriver.New() - - testcases.Fork(t, d, d) -} diff --git a/memdriver/tests/fork_with_commit_test.go b/memdriver/tests/fork_with_commit_test.go deleted file mode 100644 index 9b6a4ea..0000000 --- a/memdriver/tests/fork_with_commit_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestFork_WithCommit(t *testing.T) { - d := memdriver.New() - - testcases.Fork_WithCommit(t, d, d) -} diff --git a/memdriver/tests/get_by_id_and_rev_test.go b/memdriver/tests/get_by_id_and_rev_test.go deleted file mode 100644 index 39eb39b..0000000 --- a/memdriver/tests/get_by_id_and_rev_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestGetByIDAndRev(t *testing.T) { - d := memdriver.New() - - testcases.GetByIDAndRev(t, d, d) -} diff --git a/memdriver/tests/get_latest_by_id_test.go b/memdriver/tests/get_latest_by_id_test.go deleted file mode 100644 index 698414d..0000000 --- a/memdriver/tests/get_latest_by_id_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestGetLatestByID(t *testing.T) { - d := memdriver.New() - - testcases.GetLatestByID(t, d, d) -} diff --git a/memdriver/tests/get_latest_by_label_test.go b/memdriver/tests/get_latest_by_label_test.go deleted file mode 100644 index 10a7397..0000000 --- a/memdriver/tests/get_latest_by_label_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestGetLatestByLabel(t *testing.T) { - d := memdriver.New() - - testcases.GetLatestByLabel(t, d, d) -} diff --git a/memdriver/tests/get_not_found_test.go b/memdriver/tests/get_not_found_test.go deleted file mode 100644 index 0072d83..0000000 --- a/memdriver/tests/get_not_found_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestGetNotFound(t *testing.T) { - d := memdriver.New() - - testcases.GetNotFound(t, d, d) -} diff --git a/memdriver/tests/mutex_test.go b/memdriver/tests/mutex_test.go deleted file mode 100644 index e9a174d..0000000 --- a/memdriver/tests/mutex_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestMutex(t *testing.T) { - d := memdriver.New() - - testcases.Mutex(t, d, d) -} diff --git a/memdriver/tests/queue_test.go b/memdriver/tests/queue_test.go deleted file mode 100644 index 821cf08..0000000 --- a/memdriver/tests/queue_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestQueue(t *testing.T) { - d := memdriver.New() - - testcases.Queue(t, d, d) -} diff --git a/memdriver/tests/rate_limit_test.go b/memdriver/tests/rate_limit_test.go deleted file mode 100644 index b9b1c29..0000000 --- a/memdriver/tests/rate_limit_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestRateLimit(t *testing.T) { - d := memdriver.New() - - testcases.RateLimit(t, d, d) -} diff --git a/memdriver/tests/recovery_always_fail_test.go b/memdriver/tests/recovery_always_fail_test.go deleted file mode 100644 index 88371f3..0000000 --- a/memdriver/tests/recovery_always_fail_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestRecoveryAlwaysFail(t *testing.T) { - d := memdriver.New() - - testcases.RecoveryAlwaysFail(t, d, d) -} diff --git a/memdriver/tests/recovery_first_attempt_fail_test.go b/memdriver/tests/recovery_first_attempt_fail_test.go deleted file mode 100644 index 1cce709..0000000 --- a/memdriver/tests/recovery_first_attempt_fail_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestRecoveryFirstAttemptFail(t *testing.T) { - d := memdriver.New() - - testcases.RecoveryFirstAttemptFail(t, d, d) -} diff --git a/memdriver/tests/single_node_test.go b/memdriver/tests/single_node_test.go deleted file mode 100644 index 21c7a83..0000000 --- a/memdriver/tests/single_node_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestSingleNode(t *testing.T) { - d := memdriver.New() - - testcases.SingleNode(t, d, d) -} diff --git a/memdriver/tests/three_consequent_nodes_test.go b/memdriver/tests/three_consequent_nodes_test.go deleted file mode 100644 index c0af1e5..0000000 --- a/memdriver/tests/three_consequent_nodes_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestThreeConsequentNodes(t *testing.T) { - d := memdriver.New() - - testcases.ThreeConsequentNodes(t, d, d) -} diff --git a/memdriver/tests/two_consequent_nodes_test.go b/memdriver/tests/two_consequent_nodes_test.go deleted file mode 100644 index b7eed8f..0000000 --- a/memdriver/tests/two_consequent_nodes_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestTwoConsequentNodes(t *testing.T) { - d := memdriver.New() - - testcases.TwoConsequentNodes(t, d, d) -} diff --git a/memdriver/tests/two_consequent_nodes_with_commit_test.go b/memdriver/tests/two_consequent_nodes_with_commit_test.go deleted file mode 100644 index ccda3e2..0000000 --- a/memdriver/tests/two_consequent_nodes_with_commit_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestTwoConsequentNodesWithCommit(t *testing.T) { - d := memdriver.New() - - testcases.TwoConsequentNodesWithCommit(t, d, d) -} diff --git a/memdriver/tests/watch_labels_test.go b/memdriver/tests/watch_labels_test.go deleted file mode 100644 index 628af3e..0000000 --- a/memdriver/tests/watch_labels_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestWatchLabels(t *testing.T) { - d := memdriver.New() - - testcases.WatchLabels(t, d, d) -} diff --git a/memdriver/tests/watch_or_labels_test.go b/memdriver/tests/watch_or_labels_test.go deleted file mode 100644 index 977e1d6..0000000 --- a/memdriver/tests/watch_or_labels_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestWatchORLabels(t *testing.T) { - d := memdriver.New() - - testcases.WatchORLabels(t, d, d) -} diff --git a/memdriver/tests/watch_since_latest_test.go b/memdriver/tests/watch_since_latest_test.go deleted file mode 100644 index 00b1e8d..0000000 --- a/memdriver/tests/watch_since_latest_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestWatchSinceLatest(t *testing.T) { - d := memdriver.New() - - testcases.WatchSinceLatest(t, d, d) -} diff --git a/memdriver/tests/watch_since_rev_test.go b/memdriver/tests/watch_since_rev_test.go deleted file mode 100644 index 05de7ae..0000000 --- a/memdriver/tests/watch_since_rev_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestWatchSinceRev(t *testing.T) { - d := memdriver.New() - - testcases.WatchSinceRev(t, d, d) -} diff --git a/memdriver/tests/watch_since_time_test.go b/memdriver/tests/watch_since_time_test.go deleted file mode 100644 index 41ca119..0000000 --- a/memdriver/tests/watch_since_time_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/makasim/flowstate/memdriver" - "github.com/makasim/flowstate/testcases" -) - -func TestWatchSinceTime(t *testing.T) { - d := memdriver.New() - - testcases.WatchSinceTime(t, d, d) -} diff --git a/sqlitedriver/suite_test.go b/sqlitedriver/suite_test.go new file mode 100644 index 0000000..f50f708 --- /dev/null +++ b/sqlitedriver/suite_test.go @@ -0,0 +1,29 @@ +package sqlitedriver_test + +import ( + "database/sql" + "testing" + + "github.com/makasim/flowstate" + "github.com/makasim/flowstate/sqlitedriver" + "github.com/makasim/flowstate/testcases" + "github.com/stretchr/testify/require" +) + +func TestSuite(t *testing.T) { + s := testcases.Get(func(t testcases.TestingT) (flowstate.Doer, testcases.FlowRegistry) { + db, err := sql.Open("sqlite3", `:memory:`) + require.NoError(t, err) + db.SetMaxOpenConns(1) + + t.Cleanup(func() { + db.Close() + }) + + d := sqlitedriver.New(db) + return d, d + }) + + s.Skip(t, "Actor") + s.Test(t) +} diff --git a/sqlitedriver/tests/actor_test.go b/sqlitedriver/tests/actor_test.go deleted file mode 100644 index e6ca5c8..0000000 --- a/sqlitedriver/tests/actor_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestActor(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Actor(t, d, d) -} diff --git a/sqlitedriver/tests/call_flow_test.go b/sqlitedriver/tests/call_flow_test.go deleted file mode 100644 index aff1561..0000000 --- a/sqlitedriver/tests/call_flow_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestCallFlow(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.CallFlow(t, d, d) -} diff --git a/sqlitedriver/tests/call_flow_with_commit_test.go b/sqlitedriver/tests/call_flow_with_commit_test.go deleted file mode 100644 index 197bb1d..0000000 --- a/sqlitedriver/tests/call_flow_with_commit_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestCallFlowWithCommit(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.CallFlowWithCommit(t, d, d) -} diff --git a/sqlitedriver/tests/call_flow_with_watch_test.go b/sqlitedriver/tests/call_flow_with_watch_test.go deleted file mode 100644 index d391aba..0000000 --- a/sqlitedriver/tests/call_flow_with_watch_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestCallFlowWithWatch(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.CallFlowWithWatch(t, d, d) -} diff --git a/sqlitedriver/tests/condition_test.go b/sqlitedriver/tests/condition_test.go deleted file mode 100644 index f692ef1..0000000 --- a/sqlitedriver/tests/condition_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestCondition(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Condition(t, d, d) -} diff --git a/sqlitedriver/tests/data_flow_config_test.go b/sqlitedriver/tests/data_flow_config_test.go deleted file mode 100644 index c174d2d..0000000 --- a/sqlitedriver/tests/data_flow_config_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestDataFlowConfig(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.DataFlowConfig(t, d, d) -} diff --git a/sqlitedriver/tests/data_store_get_test.go b/sqlitedriver/tests/data_store_get_test.go deleted file mode 100644 index 3f6a5f3..0000000 --- a/sqlitedriver/tests/data_store_get_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestDataStoreGet(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.DataStoreGet(t, d, d) -} diff --git a/sqlitedriver/tests/data_store_get_with_commit_test.go b/sqlitedriver/tests/data_store_get_with_commit_test.go deleted file mode 100644 index e5f8b30..0000000 --- a/sqlitedriver/tests/data_store_get_with_commit_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestDataStoreGetWithCommit(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.DataStoreGetWithCommit(t, d, d) -} diff --git a/sqlitedriver/tests/delay_delayed_win_with_commit_test.go b/sqlitedriver/tests/delay_delayed_win_with_commit_test.go deleted file mode 100644 index cdaebeb..0000000 --- a/sqlitedriver/tests/delay_delayed_win_with_commit_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestDelay_DelayedWin_WithCommit(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Delay_DelayedWin_WithCommit(t, d, d) -} diff --git a/sqlitedriver/tests/delay_egnine_do_test.go b/sqlitedriver/tests/delay_egnine_do_test.go deleted file mode 100644 index e044734..0000000 --- a/sqlitedriver/tests/delay_egnine_do_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestDelay_EngineDo(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Delay_EngineDo(t, d, d) -} diff --git a/sqlitedriver/tests/delay_paused_test.go b/sqlitedriver/tests/delay_paused_test.go deleted file mode 100644 index ca91af6..0000000 --- a/sqlitedriver/tests/delay_paused_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestDelay_Paused(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Delay_Paused(t, d, d) -} diff --git a/sqlitedriver/tests/delay_paused_with_commit_test.go b/sqlitedriver/tests/delay_paused_with_commit_test.go deleted file mode 100644 index e94f0bd..0000000 --- a/sqlitedriver/tests/delay_paused_with_commit_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestDelay_PausedWithCommit(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Delay_PausedWithCommit(t, d, d) -} diff --git a/sqlitedriver/tests/delay_return_test.go b/sqlitedriver/tests/delay_return_test.go deleted file mode 100644 index 6782b1c..0000000 --- a/sqlitedriver/tests/delay_return_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestDelay_Return(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Delay_Return(t, d, d) -} diff --git a/sqlitedriver/tests/delay_transited_win_with_commit_test.go b/sqlitedriver/tests/delay_transited_win_with_commit_test.go deleted file mode 100644 index 77ac968..0000000 --- a/sqlitedriver/tests/delay_transited_win_with_commit_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestDelay_TransitedWin_WithCommit(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Delay_TransitedWin_WithCommit(t, d, d) -} diff --git a/sqlitedriver/tests/fork_join_first_wins_test.go b/sqlitedriver/tests/fork_join_first_wins_test.go deleted file mode 100644 index a0d003b..0000000 --- a/sqlitedriver/tests/fork_join_first_wins_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestForkJoin_FirstWins(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.ForkJoin_FirstWins(t, d, d) -} diff --git a/sqlitedriver/tests/fork_join_last_wins_test.go b/sqlitedriver/tests/fork_join_last_wins_test.go deleted file mode 100644 index 1ea1149..0000000 --- a/sqlitedriver/tests/fork_join_last_wins_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestForkJoin_LastWins(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.ForkJoin_LastWins(t, d, d) -} diff --git a/sqlitedriver/tests/fork_test.go b/sqlitedriver/tests/fork_test.go deleted file mode 100644 index aa38fa9..0000000 --- a/sqlitedriver/tests/fork_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestFork(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Fork(t, d, d) -} diff --git a/sqlitedriver/tests/fork_with_commit_test.go b/sqlitedriver/tests/fork_with_commit_test.go deleted file mode 100644 index d27a21b..0000000 --- a/sqlitedriver/tests/fork_with_commit_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestFork_WithCommit(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Fork_WithCommit(t, d, d) -} diff --git a/sqlitedriver/tests/get_by_id_and_rev_test.go b/sqlitedriver/tests/get_by_id_and_rev_test.go deleted file mode 100644 index 29c319d..0000000 --- a/sqlitedriver/tests/get_by_id_and_rev_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestGetByIDAndRev(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.GetByIDAndRev(t, d, d) -} diff --git a/sqlitedriver/tests/get_latest_by_id_test.go b/sqlitedriver/tests/get_latest_by_id_test.go deleted file mode 100644 index ec22d53..0000000 --- a/sqlitedriver/tests/get_latest_by_id_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestGetLatestByID(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.GetLatestByID(t, d, d) -} diff --git a/sqlitedriver/tests/get_latest_by_label_test.go b/sqlitedriver/tests/get_latest_by_label_test.go deleted file mode 100644 index 8b013d4..0000000 --- a/sqlitedriver/tests/get_latest_by_label_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestGetLatestByLabel(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.GetLatestByLabel(t, d, d) -} diff --git a/sqlitedriver/tests/get_not_found_test.go b/sqlitedriver/tests/get_not_found_test.go deleted file mode 100644 index 6942c35..0000000 --- a/sqlitedriver/tests/get_not_found_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestGetNotFound(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.GetNotFound(t, d, d) -} diff --git a/sqlitedriver/tests/mutex_test.go b/sqlitedriver/tests/mutex_test.go deleted file mode 100644 index c73102b..0000000 --- a/sqlitedriver/tests/mutex_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestMutex(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Mutex(t, d, d) -} diff --git a/sqlitedriver/tests/queue_test.go b/sqlitedriver/tests/queue_test.go deleted file mode 100644 index 029727b..0000000 --- a/sqlitedriver/tests/queue_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestQueue(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.Queue(t, d, d) -} diff --git a/sqlitedriver/tests/rate_limit_test.go b/sqlitedriver/tests/rate_limit_test.go deleted file mode 100644 index 6b713ca..0000000 --- a/sqlitedriver/tests/rate_limit_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestRateLimit(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.RateLimit(t, d, d) -} diff --git a/sqlitedriver/tests/recovery_always_fail_test.go b/sqlitedriver/tests/recovery_always_fail_test.go deleted file mode 100644 index 8e937bb..0000000 --- a/sqlitedriver/tests/recovery_always_fail_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestRecoveryAlwaysFail(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.RecoveryAlwaysFail(t, d, d) -} diff --git a/sqlitedriver/tests/recovery_first_attempt_fail_test.go b/sqlitedriver/tests/recovery_first_attempt_fail_test.go deleted file mode 100644 index 144b806..0000000 --- a/sqlitedriver/tests/recovery_first_attempt_fail_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestRecoveryFirstAttemptFail(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.RecoveryFirstAttemptFail(t, d, d) -} diff --git a/sqlitedriver/tests/single_node_test.go b/sqlitedriver/tests/single_node_test.go deleted file mode 100644 index 2910642..0000000 --- a/sqlitedriver/tests/single_node_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestSingleNode(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.SingleNode(t, d, d) -} diff --git a/sqlitedriver/tests/three_consequent_nodes_test.go b/sqlitedriver/tests/three_consequent_nodes_test.go deleted file mode 100644 index 99f6f79..0000000 --- a/sqlitedriver/tests/three_consequent_nodes_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestThreeConsequentNodes(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.ThreeConsequentNodes(t, d, d) -} diff --git a/sqlitedriver/tests/two_consequent_nodes_test.go b/sqlitedriver/tests/two_consequent_nodes_test.go deleted file mode 100644 index 07ea12b..0000000 --- a/sqlitedriver/tests/two_consequent_nodes_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestTwoConsequentNodes(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.TwoConsequentNodes(t, d, d) -} diff --git a/sqlitedriver/tests/two_consequent_nodes_with_commit_test.go b/sqlitedriver/tests/two_consequent_nodes_with_commit_test.go deleted file mode 100644 index 2927698..0000000 --- a/sqlitedriver/tests/two_consequent_nodes_with_commit_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestTwoConsequentNodesWithCommit(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.TwoConsequentNodesWithCommit(t, d, d) -} diff --git a/sqlitedriver/tests/watch_labels_test.go b/sqlitedriver/tests/watch_labels_test.go deleted file mode 100644 index 062d9a5..0000000 --- a/sqlitedriver/tests/watch_labels_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestWatchLabels(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.WatchLabels(t, d, d) -} diff --git a/sqlitedriver/tests/watch_or_labels_test.go b/sqlitedriver/tests/watch_or_labels_test.go deleted file mode 100644 index 8ba5032..0000000 --- a/sqlitedriver/tests/watch_or_labels_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestWatchORLabels(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.WatchORLabels(t, d, d) -} diff --git a/sqlitedriver/tests/watch_since_latest_test.go b/sqlitedriver/tests/watch_since_latest_test.go deleted file mode 100644 index 375d7c2..0000000 --- a/sqlitedriver/tests/watch_since_latest_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestWatchSinceLatest(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.WatchSinceLatest(t, d, d) -} diff --git a/sqlitedriver/tests/watch_since_rev_test.go b/sqlitedriver/tests/watch_since_rev_test.go deleted file mode 100644 index f40bfb2..0000000 --- a/sqlitedriver/tests/watch_since_rev_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestWatchSinceRev(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.WatchSinceRev(t, d, d) -} diff --git a/sqlitedriver/tests/watch_since_time_test.go b/sqlitedriver/tests/watch_since_time_test.go deleted file mode 100644 index 679659b..0000000 --- a/sqlitedriver/tests/watch_since_time_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package tests - -import ( - "database/sql" - "testing" - - "github.com/makasim/flowstate/sqlitedriver" - "github.com/makasim/flowstate/testcases" - "github.com/stretchr/testify/require" -) - -func TestWatchSinceTime(t *testing.T) { - db, err := sql.Open("sqlite3", `:memory:`) - require.NoError(t, err) - db.SetMaxOpenConns(1) - defer db.Close() - - d := sqlitedriver.New(db) - - testcases.WatchSinceTime(t, d, d) -} diff --git a/testcases/actor.go b/testcases/actor.go index f0c4534..206ebfb 100644 --- a/testcases/actor.go +++ b/testcases/actor.go @@ -10,7 +10,7 @@ import ( "go.uber.org/goleak" ) -func Actor(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Actor(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{IncludeTaskID: true} diff --git a/testcases/call_flow.go b/testcases/call_flow.go index 0ed8e9e..d8f7907 100644 --- a/testcases/call_flow.go +++ b/testcases/call_flow.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func CallFlow(t TestingT, d flowstate.Doer, fr flowRegistry) { +func CallFlow(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) var nextStateCtx *flowstate.StateCtx diff --git a/testcases/call_flow_with_commit.go b/testcases/call_flow_with_commit.go index 16bd527..323a690 100644 --- a/testcases/call_flow_with_commit.go +++ b/testcases/call_flow_with_commit.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func CallFlowWithCommit(t TestingT, d flowstate.Doer, fr flowRegistry) { +func CallFlowWithCommit(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) var nextStateCtx *flowstate.StateCtx diff --git a/testcases/call_flow_with_watch.go b/testcases/call_flow_with_watch.go index 02be94f..79912c0 100644 --- a/testcases/call_flow_with_watch.go +++ b/testcases/call_flow_with_watch.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func CallFlowWithWatch(t TestingT, d flowstate.Doer, fr flowRegistry) { +func CallFlowWithWatch(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) var nextStateCtx *flowstate.StateCtx diff --git a/testcases/condition.go b/testcases/condition.go index 97e8b4d..f881cc0 100644 --- a/testcases/condition.go +++ b/testcases/condition.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func Condition(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Condition(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/data_flow_config.go b/testcases/data_flow_config.go index 3833bb3..fb11c9b 100644 --- a/testcases/data_flow_config.go +++ b/testcases/data_flow_config.go @@ -10,7 +10,7 @@ import ( "go.uber.org/goleak" ) -func DataFlowConfig(t TestingT, d flowstate.Doer, fr flowRegistry) { +func DataFlowConfig(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) type fooConfig struct { diff --git a/testcases/data_store_get.go b/testcases/data_store_get.go index 7633b41..7d5a448 100644 --- a/testcases/data_store_get.go +++ b/testcases/data_store_get.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func DataStoreGet(t TestingT, d flowstate.Doer, fr flowRegistry) { +func DataStoreGet(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) stateCtx := &flowstate.StateCtx{ diff --git a/testcases/data_store_get_with_commit.go b/testcases/data_store_get_with_commit.go index 587a5aa..b775b02 100644 --- a/testcases/data_store_get_with_commit.go +++ b/testcases/data_store_get_with_commit.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func DataStoreGetWithCommit(t TestingT, d flowstate.Doer, fr flowRegistry) { +func DataStoreGetWithCommit(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) stateCtx := &flowstate.StateCtx{ diff --git a/testcases/delay_delayed_win_with_commit.go b/testcases/delay_delayed_win_with_commit.go index a35fed6..4ce3df8 100644 --- a/testcases/delay_delayed_win_with_commit.go +++ b/testcases/delay_delayed_win_with_commit.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func Delay_DelayedWin_WithCommit(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Delay_DelayedWin_WithCommit(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/delay_engine_do.go b/testcases/delay_engine_do.go index e6f05ca..3d075fb 100644 --- a/testcases/delay_engine_do.go +++ b/testcases/delay_engine_do.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func Delay_EngineDo(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Delay_EngineDo(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/delay_paused.go b/testcases/delay_paused.go index 961f6e3..ed8eb7a 100644 --- a/testcases/delay_paused.go +++ b/testcases/delay_paused.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func Delay_Paused(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Delay_Paused(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/delay_paused_with_commit.go b/testcases/delay_paused_with_commit.go index b4075a3..175e22d 100644 --- a/testcases/delay_paused_with_commit.go +++ b/testcases/delay_paused_with_commit.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func Delay_PausedWithCommit(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Delay_PausedWithCommit(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/delay_return.go b/testcases/delay_return.go index 99fb2d7..9245f68 100644 --- a/testcases/delay_return.go +++ b/testcases/delay_return.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func Delay_Return(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Delay_Return(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/delay_transited_win_with_commit.go b/testcases/delay_transited_win_with_commit.go index 1cd1ab0..81f2731 100644 --- a/testcases/delay_transited_win_with_commit.go +++ b/testcases/delay_transited_win_with_commit.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func Delay_TransitedWin_WithCommit(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Delay_TransitedWin_WithCommit(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/fork.go b/testcases/fork.go index 7d5f21d..57f0702 100644 --- a/testcases/fork.go +++ b/testcases/fork.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func Fork(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Fork(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) var forkedStateCtx *flowstate.StateCtx diff --git a/testcases/fork_join_first_wins.go b/testcases/fork_join_first_wins.go index e5b62b2..fe8d469 100644 --- a/testcases/fork_join_first_wins.go +++ b/testcases/fork_join_first_wins.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func ForkJoin_FirstWins(t TestingT, d flowstate.Doer, fr flowRegistry) { +func ForkJoin_FirstWins(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) var forkedStateCtx *flowstate.StateCtx diff --git a/testcases/fork_join_last_wins.go b/testcases/fork_join_last_wins.go index ce0be68..6db87b1 100644 --- a/testcases/fork_join_last_wins.go +++ b/testcases/fork_join_last_wins.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func ForkJoin_LastWins(t TestingT, d flowstate.Doer, fr flowRegistry) { +func ForkJoin_LastWins(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) var forkedStateCtx *flowstate.StateCtx diff --git a/testcases/fork_with_commit.go b/testcases/fork_with_commit.go index d4286fa..648f39d 100644 --- a/testcases/fork_with_commit.go +++ b/testcases/fork_with_commit.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func Fork_WithCommit(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Fork_WithCommit(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) var forkedStateCtx *flowstate.StateCtx diff --git a/testcases/get_by_id_and_rev.go b/testcases/get_by_id_and_rev.go index bcaffa8..bc1f8d3 100644 --- a/testcases/get_by_id_and_rev.go +++ b/testcases/get_by_id_and_rev.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func GetByIDAndRev(t TestingT, d flowstate.Doer, _ flowRegistry) { +func GetByIDAndRev(t TestingT, d flowstate.Doer, _ FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) e, err := flowstate.NewEngine(d) diff --git a/testcases/get_latest_by_id.go b/testcases/get_latest_by_id.go index 86a16da..24c02db 100644 --- a/testcases/get_latest_by_id.go +++ b/testcases/get_latest_by_id.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func GetLatestByID(t TestingT, d flowstate.Doer, _ flowRegistry) { +func GetLatestByID(t TestingT, d flowstate.Doer, _ FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) e, err := flowstate.NewEngine(d) diff --git a/testcases/get_latest_by_label.go b/testcases/get_latest_by_label.go index 3708604..eed7937 100644 --- a/testcases/get_latest_by_label.go +++ b/testcases/get_latest_by_label.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func GetLatestByLabel(t TestingT, d flowstate.Doer, _ flowRegistry) { +func GetLatestByLabel(t TestingT, d flowstate.Doer, _ FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) e, err := flowstate.NewEngine(d) diff --git a/testcases/get_not_found.go b/testcases/get_not_found.go index 2906aa5..615a0a6 100644 --- a/testcases/get_not_found.go +++ b/testcases/get_not_found.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func GetNotFound(t TestingT, d flowstate.Doer, _ flowRegistry) { +func GetNotFound(t TestingT, d flowstate.Doer, _ FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) e, err := flowstate.NewEngine(d) diff --git a/testcases/mutex.go b/testcases/mutex.go index 6623546..743aa5f 100644 --- a/testcases/mutex.go +++ b/testcases/mutex.go @@ -11,7 +11,7 @@ import ( "go.uber.org/goleak" ) -func Mutex(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Mutex(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) var raceDetector int diff --git a/testcases/queue.go b/testcases/queue.go index 44ac59a..8436f9f 100644 --- a/testcases/queue.go +++ b/testcases/queue.go @@ -10,7 +10,7 @@ import ( "go.uber.org/goleak" ) -func Queue(t TestingT, d flowstate.Doer, fr flowRegistry) { +func Queue(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{ diff --git a/testcases/rate_limit.go b/testcases/rate_limit.go index 8717bb6..0c9d2bc 100644 --- a/testcases/rate_limit.go +++ b/testcases/rate_limit.go @@ -12,7 +12,7 @@ import ( "golang.org/x/time/rate" ) -func RateLimit(t TestingT, d flowstate.Doer, fr flowRegistry) { +func RateLimit(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{ diff --git a/testcases/recovery_always_fail.go b/testcases/recovery_always_fail.go index 158f7b7..361a34b 100644 --- a/testcases/recovery_always_fail.go +++ b/testcases/recovery_always_fail.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func RecoveryAlwaysFail(t TestingT, d flowstate.Doer, fr flowRegistry) { +func RecoveryAlwaysFail(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/recovery_first_attempt_fail.go b/testcases/recovery_first_attempt_fail.go index adb5e61..1ff112a 100644 --- a/testcases/recovery_first_attempt_fail.go +++ b/testcases/recovery_first_attempt_fail.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func RecoveryFirstAttemptFail(t TestingT, d flowstate.Doer, fr flowRegistry) { +func RecoveryFirstAttemptFail(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{IncludeState: true} diff --git a/testcases/single_node.go b/testcases/single_node.go index a58b82f..61ddfcb 100644 --- a/testcases/single_node.go +++ b/testcases/single_node.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func SingleNode(t TestingT, d flowstate.Doer, fr flowRegistry) { +func SingleNode(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/suite.go b/testcases/suite.go new file mode 100644 index 0000000..d0c8f5c --- /dev/null +++ b/testcases/suite.go @@ -0,0 +1,97 @@ +package testcases + +import ( + "testing" + + "github.com/makasim/flowstate" +) + +type TestingT interface { + Error(...interface{}) + Errorf(format string, args ...interface{}) + Fatalf(format string, args ...any) + FailNow() + Cleanup(f func()) +} + +type Suite struct { + SetUp func(t TestingT) (flowstate.Doer, FlowRegistry) + + cases map[string]func(t TestingT, d flowstate.Doer, fr FlowRegistry) +} + +func (s *Suite) Test(main *testing.T) { + for name, fn := range s.cases { + main.Run(name, func(t *testing.T) { + if fn == nil { + t.SkipNow() + } + + d, fr := s.SetUp(t) + fn(t, d, fr) + }) + } +} + +func (s *Suite) Skip(t *testing.T, name string) { + if _, ok := s.cases[name]; !ok { + t.Fatal("unknown test case: ", name) + } + + s.cases[name] = nil +} + +func Get(setUp func(t TestingT) (flowstate.Doer, FlowRegistry)) *Suite { + return &Suite{ + SetUp: setUp, + + cases: map[string]func(t TestingT, d flowstate.Doer, fr FlowRegistry){ + "Actor": Actor, + + "CallFlow": CallFlow, + "CallFlowWithCommit": CallFlowWithCommit, + "CallFlowWithWatch": CallFlowWithWatch, + + "Condition": Condition, + + "DataFlowConfig": DataFlowConfig, + "DataStoreGet": DataStoreGet, + "DataStoreGetWithCommit": DataStoreGetWithCommit, + + "DelayDelayedWinWithCommit": Delay_DelayedWin_WithCommit, + "DelayEngineDo": Delay_EngineDo, + "DelayPaused": Delay_Paused, + "DelayPausedWithCommit": Delay_PausedWithCommit, + "DelayReturn": Delay_Return, + "DelayTransitedWinWithCommit": Delay_TransitedWin_WithCommit, + + "Fork": Fork, + "ForkJoinFirstWins": ForkJoin_FirstWins, + "ForkJoinLastWins": ForkJoin_LastWins, + "ForkWithCommit": Fork_WithCommit, + + "GetByIDAndRev": GetByIDAndRev, + "GetLatestByID": GetLatestByID, + "GetLatestByLabel": GetLatestByLabel, + "GetNotFound": GetNotFound, + + "Mutex": Mutex, + "Queue": Queue, + "RateLimit": RateLimit, + + "RecoveryAlwaysFail": RecoveryAlwaysFail, + "RecoveryFirstAttemptFail": RecoveryFirstAttemptFail, + + "SingleNode": SingleNode, + "ThreeConsequentNodes": ThreeConsequentNodes, + "TwoConsequentNodes": TwoConsequentNodes, + "TwoConsequentNodesWithCommit": TwoConsequentNodesWithCommit, + + "WatchLabels": WatchLabels, + "WatchOrLabels": WatchORLabels, + "WatchSinceLatest": WatchSinceLatest, + "WatchSinceRev": WatchSinceRev, + "WatchSinceTime": WatchSinceTime, + }, + } +} diff --git a/testcases/three_consequent_nodes.go b/testcases/three_consequent_nodes.go index 113e5f4..449d38e 100644 --- a/testcases/three_consequent_nodes.go +++ b/testcases/three_consequent_nodes.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func ThreeConsequentNodes(t TestingT, d flowstate.Doer, fr flowRegistry) { +func ThreeConsequentNodes(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/two_consequent_nodes.go b/testcases/two_consequent_nodes.go index a6815bb..76e9f57 100644 --- a/testcases/two_consequent_nodes.go +++ b/testcases/two_consequent_nodes.go @@ -9,14 +9,7 @@ import ( "go.uber.org/goleak" ) -type TestingT interface { - Error(...interface{}) - Errorf(format string, args ...interface{}) - Fatalf(format string, args ...any) - FailNow() -} - -func TwoConsequentNodes(t TestingT, d flowstate.Doer, fr flowRegistry) { +func TwoConsequentNodes(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/two_consequent_nodes_with_commit.go b/testcases/two_consequent_nodes_with_commit.go index 2c4e3be..4123e51 100644 --- a/testcases/two_consequent_nodes_with_commit.go +++ b/testcases/two_consequent_nodes_with_commit.go @@ -9,11 +9,11 @@ import ( "go.uber.org/goleak" ) -type flowRegistry interface { +type FlowRegistry interface { SetFlow(id flowstate.FlowID, f flowstate.Flow) } -func TwoConsequentNodesWithCommit(t TestingT, d flowstate.Doer, fr flowRegistry) { +func TwoConsequentNodesWithCommit(t TestingT, d flowstate.Doer, fr FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) trkr := &Tracker{} diff --git a/testcases/watch_labels.go b/testcases/watch_labels.go index 888b7fb..11fc5f5 100644 --- a/testcases/watch_labels.go +++ b/testcases/watch_labels.go @@ -10,7 +10,7 @@ import ( "go.uber.org/goleak" ) -func WatchLabels(t TestingT, d flowstate.Doer, _ flowRegistry) { +func WatchLabels(t TestingT, d flowstate.Doer, _ FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) e, err := flowstate.NewEngine(d) diff --git a/testcases/watch_or_labels.go b/testcases/watch_or_labels.go index bfdf306..19b77b5 100644 --- a/testcases/watch_or_labels.go +++ b/testcases/watch_or_labels.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func WatchORLabels(t TestingT, d flowstate.Doer, _ flowRegistry) { +func WatchORLabels(t TestingT, d flowstate.Doer, _ FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) e, err := flowstate.NewEngine(d) diff --git a/testcases/watch_since_latest.go b/testcases/watch_since_latest.go index 86707d4..9551dce 100644 --- a/testcases/watch_since_latest.go +++ b/testcases/watch_since_latest.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func WatchSinceLatest(t TestingT, d flowstate.Doer, _ flowRegistry) { +func WatchSinceLatest(t TestingT, d flowstate.Doer, _ FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) e, err := flowstate.NewEngine(d) diff --git a/testcases/watch_since_rev.go b/testcases/watch_since_rev.go index 18abf30..191607c 100644 --- a/testcases/watch_since_rev.go +++ b/testcases/watch_since_rev.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func WatchSinceRev(t TestingT, d flowstate.Doer, _ flowRegistry) { +func WatchSinceRev(t TestingT, d flowstate.Doer, _ FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) e, err := flowstate.NewEngine(d) diff --git a/testcases/watch_since_time.go b/testcases/watch_since_time.go index 57d71e6..50e27e0 100644 --- a/testcases/watch_since_time.go +++ b/testcases/watch_since_time.go @@ -9,7 +9,7 @@ import ( "go.uber.org/goleak" ) -func WatchSinceTime(t TestingT, d flowstate.Doer, _ flowRegistry) { +func WatchSinceTime(t TestingT, d flowstate.Doer, _ FlowRegistry) { defer goleak.VerifyNone(t, goleak.IgnoreCurrent()) e, err := flowstate.NewEngine(d) From 0e4bbc8ced00495e5d8700a6227576bfc7d3f318 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Sat, 24 Aug 2024 20:51:38 +0300 Subject: [PATCH 3/3] f --- .github/workflows/go.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index d93eaef..2211f50 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -25,10 +25,10 @@ jobs: run: go build -v ./... - name: memdriver tests - run: go test -v -race ./memdriver/tests/... + run: go test -v -race ./memdriver/... - name: sqlitedriver tests - run: go test -v -race ./sqlitedriver/tests/... + run: go test -v -race ./sqlitedriver/... - name: flowstate tests run: go test -v -race ./ \ No newline at end of file