Skip to content

Commit 359741f

Browse files
committed
Fix tests that check for init exceptions
1 parent 73c75b4 commit 359741f

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

test/cubdb/store/file_test.exs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
defmodule CubDB.Store.FileTest do
22
use ExUnit.Case, async: true
33
use CubDB.StoreExamples
4+
require TestHelper
45

56
import CubDB.Btree, only: [header: 1]
67

@@ -90,7 +91,9 @@ defmodule CubDB.Store.FileTest do
9091
test "returns error if the same file is already in use by another store", %{
9192
file_path: file_path
9293
} do
93-
assert {:error, {%ArgumentError{message: message}, _}} = CubDB.Store.File.create(file_path)
94-
assert message == "file \"#{file_path}\" is already in use by another CubDB.Store.File"
94+
TestHelper.trapping_exit do
95+
assert {:error, {%ArgumentError{message: message}, _}} = CubDB.Store.File.create(file_path)
96+
assert message == "file \"#{file_path}\" is already in use by another CubDB.Store.File"
97+
end
9598
end
9699
end

test/cubdb_test.exs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
defmodule CubDBTest do
22
use ExUnit.Case, async: true
3+
require TestHelper
34
doctest CubDB
45

56
setup do
@@ -40,7 +41,9 @@ defmodule CubDBTest do
4041
end
4142

4243
test "start_link/1 returns error if options are invalid", %{tmp_dir: tmp_dir} do
43-
assert {:error, _} = CubDB.start_link(data_dir: tmp_dir, auto_compact: "maybe")
44+
TestHelper.trapping_exit do
45+
assert {:error, _} = CubDB.start_link(data_dir: tmp_dir, auto_compact: "maybe")
46+
end
4447
end
4548

4649
test "start_link/1 returns error if data_dir is missing" do

test/test_helper.exs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,17 @@ defmodule TestHelper do
1919
|> CubDB.Btree.commit()
2020
end
2121

22+
defmacro trapping_exit(do: block) do
23+
quote do
24+
original = Process.flag(:trap_exit, true)
25+
try do
26+
unquote(block)
27+
after
28+
Process.flag(:trap_exit, original)
29+
end
30+
end
31+
end
32+
2233
defmodule Btree.Utils do
2334
@moduledoc false
2435

0 commit comments

Comments
 (0)