Skip to content

Commit

Permalink
fix(smart_holder): Use regex matching for deleter constructors in uni…
Browse files Browse the repository at this point in the history
…t tests.
  • Loading branch information
iwanders committed Nov 8, 2023
1 parent 5c062eb commit 8a75f12
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 11 deletions.
4 changes: 2 additions & 2 deletions tests/test_class_sh_basic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ struct custom_deleter {
return *this;
}

custom_deleter(custom_deleter &&other) {
custom_deleter(custom_deleter &&other) noexcept {
trace_txt = other.trace_txt + "_MvCtorTo";
other.trace_txt += "_MvCtorFrom";
}

custom_deleter &operator=(custom_deleter &&rhs) {
custom_deleter &operator=(custom_deleter &&rhs) noexcept {
trace_txt = rhs.trace_txt + "_MvLhs";
rhs.trace_txt += "_MvRhs";
return *this;
Expand Down
32 changes: 23 additions & 9 deletions tests/test_class_sh_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,18 +66,32 @@ def test_load_with_rtrn_f(pass_f, rtrn_f, expected):


@pytest.mark.parametrize(
("pass_f", "rtrn_f", "expected"),
("pass_f", "rtrn_f", "regex_expected"),
[
(m.pass_udmp_del, m.rtrn_udmp_del, "pass_udmp_del:rtrn_udmp_del,udmp_deleter_" + "_".join(["MvCtorTo"] * 6)),
(m.pass_udcp_del, m.rtrn_udcp_del, "pass_udcp_del:rtrn_udcp_del,udcp_deleter_" + "_".join(["MvCtorTo"] * 8)),
(m.pass_udmp_del_nd, m.rtrn_udmp_del_nd,
"pass_udmp_del_nd:rtrn_udmp_del_nd,udmp_deleter_nd_" + "_".join(["MvCtorTo"] * 6)),
(m.pass_udcp_del_nd, m.rtrn_udcp_del_nd,
"pass_udcp_del_nd:rtrn_udcp_del_nd,udcp_deleter_nd_" + "_".join(["MvCtorTo"] * 8)),
(
m.pass_udmp_del,
m.rtrn_udmp_del,
"pass_udmp_del:rtrn_udmp_del,udmp_deleter(_MvCtorTo)*_MvCtorTo",
),
(
m.pass_udcp_del,
m.rtrn_udcp_del,
"pass_udcp_del:rtrn_udcp_del,udcp_deleter(_MvCtorTo)*_MvCtorTo",
),
(
m.pass_udmp_del_nd,
m.rtrn_udmp_del_nd,
"pass_udmp_del_nd:rtrn_udmp_del_nd,udmp_deleter_nd(_MvCtorTo)*_MvCtorTo",
),
(
m.pass_udcp_del_nd,
m.rtrn_udcp_del_nd,
"pass_udcp_del_nd:rtrn_udcp_del_nd,udcp_deleter_nd(_MvCtorTo)*_MvCtorTo",
),
],
)
def test_deleter_roundtrip(pass_f, rtrn_f, expected):
assert pass_f(rtrn_f()) == expected
def test_deleter_roundtrip(pass_f, rtrn_f, regex_expected):
assert re.match(regex_expected, pass_f(rtrn_f()))


@pytest.mark.parametrize(
Expand Down

0 comments on commit 8a75f12

Please sign in to comment.