[apparmor] [PATCH 19/20] Extend change_profile tests
John Johansen
john.johansen at canonical.com
Fri May 29 08:39:25 UTC 2015
Signed-off-by: John Johansen <john.johansen at canonical.com>
---
parser/tst/equality.sh | 4 +-
.../simple_tests/change_profile/onx_a_bare_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_a_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_a_ok_2.sd | 7 +++
.../tst/simple_tests/change_profile/onx_a_ok_3.sd | 7 +++
.../tst/simple_tests/change_profile/onx_a_ok_4.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_a_ok_5.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_a_ok_6.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_a_ok_7.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_a_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onx_a_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onx_a_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onx_a_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onx_a_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onx_a_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onx_a_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_a_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_a_re_ok_8.sd | 45 ++++++++++++++
.../tst/simple_tests/change_profile/onx_aa_ok_1.sd | 0
.../tst/simple_tests/change_profile/onx_aa_ok_2.sd | 0
.../tst/simple_tests/change_profile/onx_aa_ok_3.sd | 0
.../tst/simple_tests/change_profile/onx_aa_ok_4.sd | 0
.../tst/simple_tests/change_profile/onx_aa_ok_5.sd | 0
.../tst/simple_tests/change_profile/onx_aa_ok_6.sd | 0
.../tst/simple_tests/change_profile/onx_aa_ok_7.sd | 0
.../tst/simple_tests/change_profile/onx_aa_ok_8.sd | 0
.../simple_tests/change_profile/onx_aa_re_ok_1.sd | 0
.../simple_tests/change_profile/onx_aa_re_ok_2.sd | 0
.../simple_tests/change_profile/onx_aa_re_ok_3.sd | 0
.../simple_tests/change_profile/onx_aa_re_ok_4.sd | 0
.../simple_tests/change_profile/onx_aa_re_ok_5.sd | 0
.../simple_tests/change_profile/onx_aa_re_ok_6.sd | 0
.../simple_tests/change_profile/onx_aa_re_ok_7.sd | 0
.../simple_tests/change_profile/onx_aa_re_ok_8.sd | 0
.../simple_tests/change_profile/onx_aao_ok_1.sd | 7 +++
.../simple_tests/change_profile/onx_aao_ok_2.sd | 7 +++
.../simple_tests/change_profile/onx_aao_ok_3.sd | 7 +++
.../simple_tests/change_profile/onx_aao_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onx_aao_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onx_aao_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onx_aao_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onx_aao_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onx_aao_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onx_aao_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onx_aao_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onx_aao_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onx_aao_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onx_aao_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_aao_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_aao_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onx_ad_bare_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_ad_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_ad_ok_2.sd | 7 +++
.../tst/simple_tests/change_profile/onx_ad_ok_3.sd | 7 +++
.../tst/simple_tests/change_profile/onx_ad_ok_4.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_ad_ok_5.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_ad_ok_6.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_ad_ok_7.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_ad_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onx_ad_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onx_ad_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onx_ad_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onx_ad_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onx_ad_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onx_ad_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_ad_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_ad_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onx_ado_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onx_ado_ok_1.sd | 7 +++
.../simple_tests/change_profile/onx_ado_ok_2.sd | 7 +++
.../simple_tests/change_profile/onx_ado_ok_3.sd | 7 +++
.../simple_tests/change_profile/onx_ado_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onx_ado_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onx_ado_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onx_ado_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onx_ado_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onx_ado_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onx_ado_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onx_ado_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onx_ado_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onx_ado_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onx_ado_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_ado_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_ado_re_ok_8.sd | 45 ++++++++++++++
.../simple_tests/change_profile/onx_allow_ok_1.sd | 7 +++
.../simple_tests/change_profile/onx_allow_ok_2.sd | 7 +++
.../simple_tests/change_profile/onx_allow_ok_3.sd | 7 +++
.../simple_tests/change_profile/onx_allow_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onx_allow_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onx_allow_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onx_allow_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onx_allow_ok_8.sd | 11 ++++
.../change_profile/onx_allow_re_ok_1.sd | 24 ++++++++
.../change_profile/onx_allow_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onx_allow_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onx_allow_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onx_allow_re_ok_5.sd | 25 ++++++++
.../change_profile/onx_allow_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onx_allow_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onx_allow_re_ok_8.sd | 45 ++++++++++++++
.../simple_tests/change_profile/onx_allowo_ok_1.sd | 0
.../simple_tests/change_profile/onx_allowo_ok_2.sd | 0
.../simple_tests/change_profile/onx_allowo_ok_3.sd | 0
.../simple_tests/change_profile/onx_allowo_ok_4.sd | 0
.../simple_tests/change_profile/onx_allowo_ok_5.sd | 0
.../simple_tests/change_profile/onx_allowo_ok_6.sd | 0
.../simple_tests/change_profile/onx_allowo_ok_7.sd | 0
.../simple_tests/change_profile/onx_allowo_ok_8.sd | 0
.../change_profile/onx_allowo_re_ok_1.sd | 0
.../change_profile/onx_allowo_re_ok_2.sd | 0
.../change_profile/onx_allowo_re_ok_3.sd | 0
.../change_profile/onx_allowo_re_ok_4.sd | 0
.../change_profile/onx_allowo_re_ok_5.sd | 0
.../change_profile/onx_allowo_re_ok_6.sd | 0
.../change_profile/onx_allowo_re_ok_7.sd | 0
.../change_profile/onx_allowo_re_ok_8.sd | 0
.../change_profile/onx_ao_bare_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_ao_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_ao_ok_2.sd | 7 +++
.../tst/simple_tests/change_profile/onx_ao_ok_3.sd | 7 +++
.../tst/simple_tests/change_profile/onx_ao_ok_4.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_ao_ok_5.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_ao_ok_6.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_ao_ok_7.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_ao_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onx_ao_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onx_ao_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onx_ao_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onx_ao_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onx_ao_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onx_ao_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_ao_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_ao_re_ok_8.sd | 45 ++++++++++++++
.../simple_tests/change_profile/onx_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onx_d_bare_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_d_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_d_ok_2.sd | 7 +++
.../tst/simple_tests/change_profile/onx_d_ok_3.sd | 7 +++
.../tst/simple_tests/change_profile/onx_d_ok_4.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_d_ok_5.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_d_ok_6.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_d_ok_7.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_d_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onx_d_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onx_d_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onx_d_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onx_d_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onx_d_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onx_d_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_d_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_d_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onx_da_bare_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_da_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_da_ok_2.sd | 7 +++
.../tst/simple_tests/change_profile/onx_da_ok_3.sd | 7 +++
.../tst/simple_tests/change_profile/onx_da_ok_4.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_da_ok_5.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_da_ok_6.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_da_ok_7.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_da_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onx_da_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onx_da_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onx_da_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onx_da_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onx_da_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onx_da_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_da_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_da_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onx_do_bare_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_do_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_do_ok_2.sd | 7 +++
.../tst/simple_tests/change_profile/onx_do_ok_3.sd | 7 +++
.../tst/simple_tests/change_profile/onx_do_ok_4.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_do_ok_5.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_do_ok_6.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_do_ok_7.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_do_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onx_do_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onx_do_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onx_do_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onx_do_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onx_do_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onx_do_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_do_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_do_re_ok_8.sd | 45 ++++++++++++++
.../simple_tests/change_profile/onx_o_bare_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_o_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onx_o_ok_2.sd | 7 +++
.../tst/simple_tests/change_profile/onx_o_ok_3.sd | 7 +++
.../tst/simple_tests/change_profile/onx_o_ok_4.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_o_ok_5.sd | 10 ++++
.../tst/simple_tests/change_profile/onx_o_ok_6.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_o_ok_7.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_o_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onx_o_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onx_o_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onx_o_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onx_o_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onx_o_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onx_o_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_o_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onx_o_re_ok_8.sd | 45 ++++++++++++++
parser/tst/simple_tests/change_profile/onx_ok_1.sd | 7 +++
parser/tst/simple_tests/change_profile/onx_ok_2.sd | 7 +++
parser/tst/simple_tests/change_profile/onx_ok_3.sd | 7 +++
parser/tst/simple_tests/change_profile/onx_ok_4.sd | 10 ++++
parser/tst/simple_tests/change_profile/onx_ok_5.sd | 10 ++++
parser/tst/simple_tests/change_profile/onx_ok_6.sd | 11 ++++
parser/tst/simple_tests/change_profile/onx_ok_7.sd | 11 ++++
parser/tst/simple_tests/change_profile/onx_ok_8.sd | 11 ++++
.../tst/simple_tests/change_profile/onx_re_ok_1.sd | 24 ++++++++
.../tst/simple_tests/change_profile/onx_re_ok_2.sd | 69 +++++++++++++++++++++
.../tst/simple_tests/change_profile/onx_re_ok_3.sd | 67 +++++++++++++++++++++
.../tst/simple_tests/change_profile/onx_re_ok_4.sd | 51 ++++++++++++++++
.../tst/simple_tests/change_profile/onx_re_ok_5.sd | 25 ++++++++
.../tst/simple_tests/change_profile/onx_re_ok_6.sd | 65 ++++++++++++++++++++
.../tst/simple_tests/change_profile/onx_re_ok_7.sd | 65 ++++++++++++++++++++
.../tst/simple_tests/change_profile/onx_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxbad_a_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_a_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_a_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxbad_a_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxbad_a_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxbad_a_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxbad_a_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxbad_a_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxbad_a_ok_8.sd | 11 ++++
.../change_profile/onxbad_a_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_a_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_a_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_a_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_a_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_a_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_a_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_a_re_ok_8.sd | 45 ++++++++++++++
.../simple_tests/change_profile/onxbad_aa_ok_1.sd | 0
.../simple_tests/change_profile/onxbad_aa_ok_2.sd | 0
.../simple_tests/change_profile/onxbad_aa_ok_3.sd | 0
.../simple_tests/change_profile/onxbad_aa_ok_4.sd | 0
.../simple_tests/change_profile/onxbad_aa_ok_5.sd | 0
.../simple_tests/change_profile/onxbad_aa_ok_6.sd | 0
.../simple_tests/change_profile/onxbad_aa_ok_7.sd | 0
.../simple_tests/change_profile/onxbad_aa_ok_8.sd | 0
.../change_profile/onxbad_aa_re_ok_1.sd | 0
.../change_profile/onxbad_aa_re_ok_2.sd | 0
.../change_profile/onxbad_aa_re_ok_3.sd | 0
.../change_profile/onxbad_aa_re_ok_4.sd | 0
.../change_profile/onxbad_aa_re_ok_5.sd | 0
.../change_profile/onxbad_aa_re_ok_6.sd | 0
.../change_profile/onxbad_aa_re_ok_7.sd | 0
.../change_profile/onxbad_aa_re_ok_8.sd | 0
.../simple_tests/change_profile/onxbad_aao_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_aao_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxbad_aao_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxbad_aao_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxbad_aao_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxbad_aao_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxbad_aao_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxbad_aao_ok_8.sd | 11 ++++
.../change_profile/onxbad_aao_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_aao_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_aao_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_aao_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_aao_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_aao_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_aao_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_aao_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxbad_ad_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_ad_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_ad_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxbad_ad_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxbad_ad_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxbad_ad_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxbad_ad_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxbad_ad_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxbad_ad_ok_8.sd | 11 ++++
.../change_profile/onxbad_ad_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_ad_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_ad_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_ad_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_ad_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_ad_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_ad_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_ad_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxbad_ado_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_ado_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_ado_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxbad_ado_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxbad_ado_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxbad_ado_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxbad_ado_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxbad_ado_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxbad_ado_ok_8.sd | 11 ++++
.../change_profile/onxbad_ado_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_ado_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_ado_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_ado_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_ado_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_ado_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_ado_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_ado_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxbad_allow_ok_1.sd | 7 +++
.../change_profile/onxbad_allow_ok_2.sd | 7 +++
.../change_profile/onxbad_allow_ok_3.sd | 7 +++
.../change_profile/onxbad_allow_ok_4.sd | 10 ++++
.../change_profile/onxbad_allow_ok_5.sd | 10 ++++
.../change_profile/onxbad_allow_ok_6.sd | 11 ++++
.../change_profile/onxbad_allow_ok_7.sd | 11 ++++
.../change_profile/onxbad_allow_ok_8.sd | 11 ++++
.../change_profile/onxbad_allow_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_allow_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_allow_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_allow_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_allow_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_allow_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_allow_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_allow_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxbad_allowo_ok_1.sd | 0
.../change_profile/onxbad_allowo_ok_2.sd | 0
.../change_profile/onxbad_allowo_ok_3.sd | 0
.../change_profile/onxbad_allowo_ok_4.sd | 0
.../change_profile/onxbad_allowo_ok_5.sd | 0
.../change_profile/onxbad_allowo_ok_6.sd | 0
.../change_profile/onxbad_allowo_ok_7.sd | 0
.../change_profile/onxbad_allowo_ok_8.sd | 0
.../change_profile/onxbad_allowo_re_ok_1.sd | 0
.../change_profile/onxbad_allowo_re_ok_2.sd | 0
.../change_profile/onxbad_allowo_re_ok_3.sd | 0
.../change_profile/onxbad_allowo_re_ok_4.sd | 0
.../change_profile/onxbad_allowo_re_ok_5.sd | 0
.../change_profile/onxbad_allowo_re_ok_6.sd | 0
.../change_profile/onxbad_allowo_re_ok_7.sd | 0
.../change_profile/onxbad_allowo_re_ok_8.sd | 0
.../change_profile/onxbad_ao_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_ao_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_ao_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxbad_ao_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxbad_ao_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxbad_ao_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxbad_ao_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxbad_ao_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxbad_ao_ok_8.sd | 11 ++++
.../change_profile/onxbad_ao_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_ao_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_ao_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_ao_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_ao_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_ao_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_ao_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_ao_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxbad_bare_ok_1.sd | 7 +++
.../change_profile/onxbad_d_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_d_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_d_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxbad_d_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxbad_d_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxbad_d_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxbad_d_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxbad_d_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxbad_d_ok_8.sd | 11 ++++
.../change_profile/onxbad_d_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_d_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_d_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_d_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_d_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_d_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_d_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_d_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxbad_da_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_da_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_da_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxbad_da_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxbad_da_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxbad_da_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxbad_da_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxbad_da_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxbad_da_ok_8.sd | 11 ++++
.../change_profile/onxbad_da_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_da_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_da_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_da_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_da_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_da_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_da_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_da_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxbad_do_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_do_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_do_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxbad_do_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxbad_do_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxbad_do_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxbad_do_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxbad_do_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxbad_do_ok_8.sd | 11 ++++
.../change_profile/onxbad_do_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_do_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_do_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_do_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_do_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_do_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_do_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_do_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxbad_o_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_o_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxbad_o_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxbad_o_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxbad_o_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxbad_o_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxbad_o_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxbad_o_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxbad_o_ok_8.sd | 11 ++++
.../change_profile/onxbad_o_re_ok_1.sd | 24 ++++++++
.../change_profile/onxbad_o_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxbad_o_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxbad_o_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxbad_o_re_ok_5.sd | 25 ++++++++
.../change_profile/onxbad_o_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_o_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxbad_o_re_ok_8.sd | 45 ++++++++++++++
.../tst/simple_tests/change_profile/onxbad_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onxbad_ok_2.sd | 7 +++
.../tst/simple_tests/change_profile/onxbad_ok_3.sd | 7 +++
.../tst/simple_tests/change_profile/onxbad_ok_4.sd | 10 ++++
.../tst/simple_tests/change_profile/onxbad_ok_5.sd | 10 ++++
.../tst/simple_tests/change_profile/onxbad_ok_6.sd | 11 ++++
.../tst/simple_tests/change_profile/onxbad_ok_7.sd | 11 ++++
.../tst/simple_tests/change_profile/onxbad_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onxbad_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onxbad_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onxbad_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onxbad_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onxbad_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onxbad_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxbad_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxbad_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxre_a_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_a_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_a_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxre_a_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxre_a_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxre_a_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxre_a_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxre_a_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxre_a_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onxre_a_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onxre_a_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onxre_a_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onxre_a_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onxre_a_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onxre_a_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxre_a_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxre_a_re_ok_8.sd | 45 ++++++++++++++
.../simple_tests/change_profile/onxre_aa_ok_1.sd | 0
.../simple_tests/change_profile/onxre_aa_ok_2.sd | 0
.../simple_tests/change_profile/onxre_aa_ok_3.sd | 0
.../simple_tests/change_profile/onxre_aa_ok_4.sd | 0
.../simple_tests/change_profile/onxre_aa_ok_5.sd | 0
.../simple_tests/change_profile/onxre_aa_ok_6.sd | 0
.../simple_tests/change_profile/onxre_aa_ok_7.sd | 0
.../simple_tests/change_profile/onxre_aa_ok_8.sd | 0
.../change_profile/onxre_aa_re_ok_1.sd | 0
.../change_profile/onxre_aa_re_ok_2.sd | 0
.../change_profile/onxre_aa_re_ok_3.sd | 0
.../change_profile/onxre_aa_re_ok_4.sd | 0
.../change_profile/onxre_aa_re_ok_5.sd | 0
.../change_profile/onxre_aa_re_ok_6.sd | 0
.../change_profile/onxre_aa_re_ok_7.sd | 0
.../change_profile/onxre_aa_re_ok_8.sd | 0
.../simple_tests/change_profile/onxre_aao_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_aao_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxre_aao_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxre_aao_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxre_aao_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxre_aao_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxre_aao_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxre_aao_ok_8.sd | 11 ++++
.../change_profile/onxre_aao_re_ok_1.sd | 24 ++++++++
.../change_profile/onxre_aao_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxre_aao_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxre_aao_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxre_aao_re_ok_5.sd | 25 ++++++++
.../change_profile/onxre_aao_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_aao_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_aao_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxre_ad_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_ad_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_ad_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxre_ad_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxre_ad_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxre_ad_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxre_ad_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxre_ad_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxre_ad_ok_8.sd | 11 ++++
.../change_profile/onxre_ad_re_ok_1.sd | 24 ++++++++
.../change_profile/onxre_ad_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxre_ad_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxre_ad_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxre_ad_re_ok_5.sd | 25 ++++++++
.../change_profile/onxre_ad_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_ad_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_ad_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxre_ado_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_ado_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_ado_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxre_ado_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxre_ado_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxre_ado_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxre_ado_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxre_ado_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxre_ado_ok_8.sd | 11 ++++
.../change_profile/onxre_ado_re_ok_1.sd | 24 ++++++++
.../change_profile/onxre_ado_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxre_ado_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxre_ado_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxre_ado_re_ok_5.sd | 25 ++++++++
.../change_profile/onxre_ado_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_ado_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_ado_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxre_allow_ok_1.sd | 7 +++
.../change_profile/onxre_allow_ok_2.sd | 7 +++
.../change_profile/onxre_allow_ok_3.sd | 7 +++
.../change_profile/onxre_allow_ok_4.sd | 10 ++++
.../change_profile/onxre_allow_ok_5.sd | 10 ++++
.../change_profile/onxre_allow_ok_6.sd | 11 ++++
.../change_profile/onxre_allow_ok_7.sd | 11 ++++
.../change_profile/onxre_allow_ok_8.sd | 11 ++++
.../change_profile/onxre_allow_re_ok_1.sd | 24 ++++++++
.../change_profile/onxre_allow_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxre_allow_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxre_allow_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxre_allow_re_ok_5.sd | 25 ++++++++
.../change_profile/onxre_allow_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_allow_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_allow_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxre_allowo_ok_1.sd | 0
.../change_profile/onxre_allowo_ok_2.sd | 0
.../change_profile/onxre_allowo_ok_3.sd | 0
.../change_profile/onxre_allowo_ok_4.sd | 0
.../change_profile/onxre_allowo_ok_5.sd | 0
.../change_profile/onxre_allowo_ok_6.sd | 0
.../change_profile/onxre_allowo_ok_7.sd | 0
.../change_profile/onxre_allowo_ok_8.sd | 0
.../change_profile/onxre_allowo_re_ok_1.sd | 0
.../change_profile/onxre_allowo_re_ok_2.sd | 0
.../change_profile/onxre_allowo_re_ok_3.sd | 0
.../change_profile/onxre_allowo_re_ok_4.sd | 0
.../change_profile/onxre_allowo_re_ok_5.sd | 0
.../change_profile/onxre_allowo_re_ok_6.sd | 0
.../change_profile/onxre_allowo_re_ok_7.sd | 0
.../change_profile/onxre_allowo_re_ok_8.sd | 0
.../change_profile/onxre_ao_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_ao_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_ao_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxre_ao_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxre_ao_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxre_ao_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxre_ao_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxre_ao_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxre_ao_ok_8.sd | 11 ++++
.../change_profile/onxre_ao_re_ok_1.sd | 24 ++++++++
.../change_profile/onxre_ao_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxre_ao_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxre_ao_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxre_ao_re_ok_5.sd | 25 ++++++++
.../change_profile/onxre_ao_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_ao_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_ao_re_ok_8.sd | 45 ++++++++++++++
.../simple_tests/change_profile/onxre_bare_ok_1.sd | 7 +++
.../change_profile/onxre_d_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_d_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_d_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxre_d_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxre_d_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxre_d_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxre_d_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxre_d_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxre_d_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onxre_d_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onxre_d_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onxre_d_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onxre_d_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onxre_d_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onxre_d_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxre_d_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxre_d_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxre_da_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_da_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_da_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxre_da_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxre_da_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxre_da_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxre_da_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxre_da_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxre_da_ok_8.sd | 11 ++++
.../change_profile/onxre_da_re_ok_1.sd | 24 ++++++++
.../change_profile/onxre_da_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxre_da_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxre_da_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxre_da_re_ok_5.sd | 25 ++++++++
.../change_profile/onxre_da_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_da_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_da_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxre_do_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_do_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_do_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxre_do_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxre_do_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxre_do_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxre_do_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxre_do_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxre_do_ok_8.sd | 11 ++++
.../change_profile/onxre_do_re_ok_1.sd | 24 ++++++++
.../change_profile/onxre_do_re_ok_2.sd | 69 +++++++++++++++++++++
.../change_profile/onxre_do_re_ok_3.sd | 67 +++++++++++++++++++++
.../change_profile/onxre_do_re_ok_4.sd | 51 ++++++++++++++++
.../change_profile/onxre_do_re_ok_5.sd | 25 ++++++++
.../change_profile/onxre_do_re_ok_6.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_do_re_ok_7.sd | 65 ++++++++++++++++++++
.../change_profile/onxre_do_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxre_o_bare_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_o_ok_1.sd | 7 +++
.../simple_tests/change_profile/onxre_o_ok_2.sd | 7 +++
.../simple_tests/change_profile/onxre_o_ok_3.sd | 7 +++
.../simple_tests/change_profile/onxre_o_ok_4.sd | 10 ++++
.../simple_tests/change_profile/onxre_o_ok_5.sd | 10 ++++
.../simple_tests/change_profile/onxre_o_ok_6.sd | 11 ++++
.../simple_tests/change_profile/onxre_o_ok_7.sd | 11 ++++
.../simple_tests/change_profile/onxre_o_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onxre_o_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onxre_o_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onxre_o_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onxre_o_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onxre_o_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onxre_o_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxre_o_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxre_o_re_ok_8.sd | 45 ++++++++++++++
.../tst/simple_tests/change_profile/onxre_ok_1.sd | 7 +++
.../tst/simple_tests/change_profile/onxre_ok_2.sd | 7 +++
.../tst/simple_tests/change_profile/onxre_ok_3.sd | 7 +++
.../tst/simple_tests/change_profile/onxre_ok_4.sd | 10 ++++
.../tst/simple_tests/change_profile/onxre_ok_5.sd | 10 ++++
.../tst/simple_tests/change_profile/onxre_ok_6.sd | 11 ++++
.../tst/simple_tests/change_profile/onxre_ok_7.sd | 11 ++++
.../tst/simple_tests/change_profile/onxre_ok_8.sd | 11 ++++
.../simple_tests/change_profile/onxre_re_ok_1.sd | 24 ++++++++
.../simple_tests/change_profile/onxre_re_ok_2.sd | 69 +++++++++++++++++++++
.../simple_tests/change_profile/onxre_re_ok_3.sd | 67 +++++++++++++++++++++
.../simple_tests/change_profile/onxre_re_ok_4.sd | 51 ++++++++++++++++
.../simple_tests/change_profile/onxre_re_ok_5.sd | 25 ++++++++
.../simple_tests/change_profile/onxre_re_ok_6.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxre_re_ok_7.sd | 65 ++++++++++++++++++++
.../simple_tests/change_profile/onxre_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxvar_a_bare_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_a_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_a_ok_2.sd | 8 +++
.../simple_tests/change_profile/onxvar_a_ok_3.sd | 8 +++
.../simple_tests/change_profile/onxvar_a_ok_4.sd | 11 ++++
.../simple_tests/change_profile/onxvar_a_ok_5.sd | 11 ++++
.../simple_tests/change_profile/onxvar_a_ok_6.sd | 12 ++++
.../simple_tests/change_profile/onxvar_a_ok_7.sd | 12 ++++
.../simple_tests/change_profile/onxvar_a_ok_8.sd | 12 ++++
.../change_profile/onxvar_a_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_a_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_a_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_a_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_a_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_a_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_a_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_a_re_ok_8.sd | 47 +++++++++++++++
.../simple_tests/change_profile/onxvar_aa_ok_1.sd | 0
.../simple_tests/change_profile/onxvar_aa_ok_2.sd | 0
.../simple_tests/change_profile/onxvar_aa_ok_3.sd | 0
.../simple_tests/change_profile/onxvar_aa_ok_4.sd | 0
.../simple_tests/change_profile/onxvar_aa_ok_5.sd | 0
.../simple_tests/change_profile/onxvar_aa_ok_6.sd | 0
.../simple_tests/change_profile/onxvar_aa_ok_7.sd | 0
.../simple_tests/change_profile/onxvar_aa_ok_8.sd | 0
.../change_profile/onxvar_aa_re_ok_1.sd | 0
.../change_profile/onxvar_aa_re_ok_2.sd | 0
.../change_profile/onxvar_aa_re_ok_3.sd | 0
.../change_profile/onxvar_aa_re_ok_4.sd | 0
.../change_profile/onxvar_aa_re_ok_5.sd | 0
.../change_profile/onxvar_aa_re_ok_6.sd | 0
.../change_profile/onxvar_aa_re_ok_7.sd | 0
.../change_profile/onxvar_aa_re_ok_8.sd | 0
.../simple_tests/change_profile/onxvar_aao_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_aao_ok_2.sd | 8 +++
.../simple_tests/change_profile/onxvar_aao_ok_3.sd | 8 +++
.../simple_tests/change_profile/onxvar_aao_ok_4.sd | 11 ++++
.../simple_tests/change_profile/onxvar_aao_ok_5.sd | 11 ++++
.../simple_tests/change_profile/onxvar_aao_ok_6.sd | 12 ++++
.../simple_tests/change_profile/onxvar_aao_ok_7.sd | 12 ++++
.../simple_tests/change_profile/onxvar_aao_ok_8.sd | 12 ++++
.../change_profile/onxvar_aao_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_aao_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_aao_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_aao_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_aao_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_aao_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_aao_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_aao_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxvar_ad_bare_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_ad_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_ad_ok_2.sd | 8 +++
.../simple_tests/change_profile/onxvar_ad_ok_3.sd | 8 +++
.../simple_tests/change_profile/onxvar_ad_ok_4.sd | 11 ++++
.../simple_tests/change_profile/onxvar_ad_ok_5.sd | 11 ++++
.../simple_tests/change_profile/onxvar_ad_ok_6.sd | 12 ++++
.../simple_tests/change_profile/onxvar_ad_ok_7.sd | 12 ++++
.../simple_tests/change_profile/onxvar_ad_ok_8.sd | 12 ++++
.../change_profile/onxvar_ad_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_ad_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_ad_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_ad_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_ad_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_ad_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_ad_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_ad_re_ok_8.sd | 47 +++++++++++++++
.../change_profile/onxvar_ado_bare_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_ado_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_ado_ok_2.sd | 8 +++
.../simple_tests/change_profile/onxvar_ado_ok_3.sd | 8 +++
.../simple_tests/change_profile/onxvar_ado_ok_4.sd | 11 ++++
.../simple_tests/change_profile/onxvar_ado_ok_5.sd | 11 ++++
.../simple_tests/change_profile/onxvar_ado_ok_6.sd | 12 ++++
.../simple_tests/change_profile/onxvar_ado_ok_7.sd | 12 ++++
.../simple_tests/change_profile/onxvar_ado_ok_8.sd | 12 ++++
.../change_profile/onxvar_ado_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_ado_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_ado_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_ado_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_ado_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_ado_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_ado_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_ado_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxvar_allow_ok_1.sd | 8 +++
.../change_profile/onxvar_allow_ok_2.sd | 8 +++
.../change_profile/onxvar_allow_ok_3.sd | 8 +++
.../change_profile/onxvar_allow_ok_4.sd | 11 ++++
.../change_profile/onxvar_allow_ok_5.sd | 11 ++++
.../change_profile/onxvar_allow_ok_6.sd | 12 ++++
.../change_profile/onxvar_allow_ok_7.sd | 12 ++++
.../change_profile/onxvar_allow_ok_8.sd | 12 ++++
.../change_profile/onxvar_allow_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_allow_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_allow_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_allow_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_allow_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_allow_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_allow_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_allow_re_ok_8.sd | 47 +++++++++++++++
.../change_profile/onxvar_allowo_ok_1.sd | 0
.../change_profile/onxvar_allowo_ok_2.sd | 0
.../change_profile/onxvar_allowo_ok_3.sd | 0
.../change_profile/onxvar_allowo_ok_4.sd | 0
.../change_profile/onxvar_allowo_ok_5.sd | 0
.../change_profile/onxvar_allowo_ok_6.sd | 0
.../change_profile/onxvar_allowo_ok_7.sd | 0
.../change_profile/onxvar_allowo_ok_8.sd | 0
.../change_profile/onxvar_allowo_re_ok_1.sd | 0
.../change_profile/onxvar_allowo_re_ok_2.sd | 0
.../change_profile/onxvar_allowo_re_ok_3.sd | 0
.../change_profile/onxvar_allowo_re_ok_4.sd | 0
.../change_profile/onxvar_allowo_re_ok_5.sd | 0
.../change_profile/onxvar_allowo_re_ok_6.sd | 0
.../change_profile/onxvar_allowo_re_ok_7.sd | 0
.../change_profile/onxvar_allowo_re_ok_8.sd | 0
.../change_profile/onxvar_ao_bare_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_ao_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_ao_ok_2.sd | 8 +++
.../simple_tests/change_profile/onxvar_ao_ok_3.sd | 8 +++
.../simple_tests/change_profile/onxvar_ao_ok_4.sd | 11 ++++
.../simple_tests/change_profile/onxvar_ao_ok_5.sd | 11 ++++
.../simple_tests/change_profile/onxvar_ao_ok_6.sd | 12 ++++
.../simple_tests/change_profile/onxvar_ao_ok_7.sd | 12 ++++
.../simple_tests/change_profile/onxvar_ao_ok_8.sd | 12 ++++
.../change_profile/onxvar_ao_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_ao_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_ao_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_ao_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_ao_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_ao_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_ao_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_ao_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxvar_bare_ok_1.sd | 8 +++
.../change_profile/onxvar_d_bare_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_d_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_d_ok_2.sd | 8 +++
.../simple_tests/change_profile/onxvar_d_ok_3.sd | 8 +++
.../simple_tests/change_profile/onxvar_d_ok_4.sd | 11 ++++
.../simple_tests/change_profile/onxvar_d_ok_5.sd | 11 ++++
.../simple_tests/change_profile/onxvar_d_ok_6.sd | 12 ++++
.../simple_tests/change_profile/onxvar_d_ok_7.sd | 12 ++++
.../simple_tests/change_profile/onxvar_d_ok_8.sd | 12 ++++
.../change_profile/onxvar_d_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_d_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_d_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_d_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_d_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_d_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_d_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_d_re_ok_8.sd | 47 +++++++++++++++
.../change_profile/onxvar_da_bare_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_da_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_da_ok_2.sd | 8 +++
.../simple_tests/change_profile/onxvar_da_ok_3.sd | 8 +++
.../simple_tests/change_profile/onxvar_da_ok_4.sd | 11 ++++
.../simple_tests/change_profile/onxvar_da_ok_5.sd | 11 ++++
.../simple_tests/change_profile/onxvar_da_ok_6.sd | 12 ++++
.../simple_tests/change_profile/onxvar_da_ok_7.sd | 12 ++++
.../simple_tests/change_profile/onxvar_da_ok_8.sd | 12 ++++
.../change_profile/onxvar_da_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_da_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_da_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_da_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_da_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_da_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_da_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_da_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxvar_do_bare_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_do_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_do_ok_2.sd | 8 +++
.../simple_tests/change_profile/onxvar_do_ok_3.sd | 8 +++
.../simple_tests/change_profile/onxvar_do_ok_4.sd | 11 ++++
.../simple_tests/change_profile/onxvar_do_ok_5.sd | 11 ++++
.../simple_tests/change_profile/onxvar_do_ok_6.sd | 12 ++++
.../simple_tests/change_profile/onxvar_do_ok_7.sd | 12 ++++
.../simple_tests/change_profile/onxvar_do_ok_8.sd | 12 ++++
.../change_profile/onxvar_do_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_do_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_do_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_do_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_do_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_do_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_do_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_do_re_ok_8.sd | 45 ++++++++++++++
.../change_profile/onxvar_o_bare_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_o_ok_1.sd | 8 +++
.../simple_tests/change_profile/onxvar_o_ok_2.sd | 8 +++
.../simple_tests/change_profile/onxvar_o_ok_3.sd | 8 +++
.../simple_tests/change_profile/onxvar_o_ok_4.sd | 11 ++++
.../simple_tests/change_profile/onxvar_o_ok_5.sd | 11 ++++
.../simple_tests/change_profile/onxvar_o_ok_6.sd | 12 ++++
.../simple_tests/change_profile/onxvar_o_ok_7.sd | 12 ++++
.../simple_tests/change_profile/onxvar_o_ok_8.sd | 12 ++++
.../change_profile/onxvar_o_re_ok_1.sd | 25 ++++++++
.../change_profile/onxvar_o_re_ok_2.sd | 70 ++++++++++++++++++++++
.../change_profile/onxvar_o_re_ok_3.sd | 68 +++++++++++++++++++++
.../change_profile/onxvar_o_re_ok_4.sd | 52 ++++++++++++++++
.../change_profile/onxvar_o_re_ok_5.sd | 26 ++++++++
.../change_profile/onxvar_o_re_ok_6.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_o_re_ok_7.sd | 66 ++++++++++++++++++++
.../change_profile/onxvar_o_re_ok_8.sd | 45 ++++++++++++++
.../tst/simple_tests/change_profile/onxvar_ok_1.sd | 8 +++
.../tst/simple_tests/change_profile/onxvar_ok_2.sd | 8 +++
.../tst/simple_tests/change_profile/onxvar_ok_3.sd | 8 +++
.../tst/simple_tests/change_profile/onxvar_ok_4.sd | 11 ++++
.../tst/simple_tests/change_profile/onxvar_ok_5.sd | 11 ++++
.../tst/simple_tests/change_profile/onxvar_ok_6.sd | 12 ++++
.../tst/simple_tests/change_profile/onxvar_ok_7.sd | 12 ++++
.../tst/simple_tests/change_profile/onxvar_ok_8.sd | 12 ++++
.../simple_tests/change_profile/onxvar_re_ok_1.sd | 25 ++++++++
.../simple_tests/change_profile/onxvar_re_ok_2.sd | 70 ++++++++++++++++++++++
.../simple_tests/change_profile/onxvar_re_ok_3.sd | 68 +++++++++++++++++++++
.../simple_tests/change_profile/onxvar_re_ok_4.sd | 52 ++++++++++++++++
.../simple_tests/change_profile/onxvar_re_ok_5.sd | 26 ++++++++
.../simple_tests/change_profile/onxvar_re_ok_6.sd | 66 ++++++++++++++++++++
.../simple_tests/change_profile/onxvar_re_ok_7.sd | 66 ++++++++++++++++++++
.../simple_tests/change_profile/onxvar_re_ok_8.sd | 47 +++++++++++++++
869 files changed, 21779 insertions(+), 1 deletion(-)
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_a_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aa_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_aao_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ad_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ado_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allow_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_allowo_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ao_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_d_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_da_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_do_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_o_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onx_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_a_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_d_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_da_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_do_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_o_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxbad_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_a_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aa_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_aao_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ad_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ado_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allow_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ao_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_d_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_da_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_do_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_o_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxre_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_a_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_d_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_da_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_do_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_bare_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_o_re_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_ok_8.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_re_ok_1.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_re_ok_2.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_re_ok_3.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_re_ok_4.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_re_ok_5.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_re_ok_6.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_re_ok_7.sd
create mode 100644 parser/tst/simple_tests/change_profile/onxvar_re_ok_8.sd
diff --git a/parser/tst/equality.sh b/parser/tst/equality.sh
index 700ac8b..3beed27 100755
--- a/parser/tst/equality.sh
+++ b/parser/tst/equality.sh
@@ -460,7 +460,9 @@ verify_binary_equality "Deny of ungranted perm" \
verify_binary_equality "change_profile == change_profile -> **" \
"/t { change_profile, }" \
- "/t { change_profile -> **, }"
+ "/t { change_profile -> **, }" \
+ "/t { change_profile /**, }" \
+ "/t { change_profile /** -> **, }"
if [ $fails -ne 0 -o $errors -ne 0 ]
then
diff --git a/parser/tst/simple_tests/change_profile/onx_a_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_a_bare_ok_1.sd
new file mode 100644
index 0000000..55d3e07
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_a_ok_1.sd
new file mode 100644
index 0000000..4526f98
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_a_ok_2.sd
new file mode 100644
index 0000000..529d15b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_a_ok_3.sd
new file mode 100644
index 0000000..af779d1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_a_ok_4.sd
new file mode 100644
index 0000000..ba08089
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_a_ok_5.sd
new file mode 100644
index 0000000..dac8411
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_a_ok_6.sd
new file mode 100644
index 0000000..3045a64
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile /onexec with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_a_ok_7.sd
new file mode 100644
index 0000000..c7bf408
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile /onexec to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_a_ok_8.sd
new file mode 100644
index 0000000..8078a7f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile /onexec with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_a_re_ok_1.sd
new file mode 100644
index 0000000..b476e08
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_a_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_a_re_ok_2.sd
new file mode 100644
index 0000000..05d3c94
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_a_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_a_re_ok_3.sd
new file mode 100644
index 0000000..13777a2
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_a_re_ok_4.sd
new file mode 100644
index 0000000..6198752
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_a_re_ok_5.sd
new file mode 100644
index 0000000..16f5266
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit change_profile /onexec with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ audit change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_a_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_a_re_ok_6.sd
new file mode 100644
index 0000000..b0418d6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit change_profile /onexec with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ audit change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_a_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_a_re_ok_7.sd
new file mode 100644
index 0000000..6a38912
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit change_profile /onexec with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ audit change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_a_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_a_re_ok_8.sd
new file mode 100644
index 0000000..db9d36d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_a_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit change_profile /onexec re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ audit change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_aa_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_aa_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_aa_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_aa_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_aa_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_aa_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_aa_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_aa_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_aa_re_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_aa_re_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_aa_re_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_aa_re_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_aa_re_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_aa_re_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_aa_re_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aa_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_aa_re_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_aao_ok_1.sd
new file mode 100644
index 0000000..0936def
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_aao_ok_2.sd
new file mode 100644
index 0000000..8f15301
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_aao_ok_3.sd
new file mode 100644
index 0000000..9e955fd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_aao_ok_4.sd
new file mode 100644
index 0000000..86a6506
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_aao_ok_5.sd
new file mode 100644
index 0000000..833b336
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_aao_ok_6.sd
new file mode 100644
index 0000000..e2b50a3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_aao_ok_7.sd
new file mode 100644
index 0000000..1298ef2
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_aao_ok_8.sd
new file mode 100644
index 0000000..2fc700b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_1.sd
new file mode 100644
index 0000000..757b25f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_2.sd
new file mode 100644
index 0000000..8dd17bd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit allow owner change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_3.sd
new file mode 100644
index 0000000..4ac9403
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit allow owner change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_4.sd
new file mode 100644
index 0000000..ca3cd5a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_5.sd
new file mode 100644
index 0000000..dff1858
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_6.sd
new file mode 100644
index 0000000..6e1cf7f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_7.sd
new file mode 100644
index 0000000..8cbdcb5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit allow owner change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_aao_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_8.sd
new file mode 100644
index 0000000..a0bde2f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_aao_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit allow owner change_profile /onexec re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ad_bare_ok_1.sd
new file mode 100644
index 0000000..26c3872
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ad_ok_1.sd
new file mode 100644
index 0000000..b6afda1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_ad_ok_2.sd
new file mode 100644
index 0000000..4efadb0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_ad_ok_3.sd
new file mode 100644
index 0000000..0a4f4fe
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_ad_ok_4.sd
new file mode 100644
index 0000000..ece6b23
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_ad_ok_5.sd
new file mode 100644
index 0000000..a2e4b68
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_ad_ok_6.sd
new file mode 100644
index 0000000..c99bce2
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_ad_ok_7.sd
new file mode 100644
index 0000000..b89a11c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_ad_ok_8.sd
new file mode 100644
index 0000000..2fdce8f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_1.sd
new file mode 100644
index 0000000..3482539
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_2.sd
new file mode 100644
index 0000000..57f7866
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_3.sd
new file mode 100644
index 0000000..26b50ab
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_4.sd
new file mode 100644
index 0000000..a3a5e55
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit deny change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_5.sd
new file mode 100644
index 0000000..a30b256
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ audit deny change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_6.sd
new file mode 100644
index 0000000..efd84fa
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ audit deny change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_7.sd
new file mode 100644
index 0000000..a5bec80
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ audit deny change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ad_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_8.sd
new file mode 100644
index 0000000..6157fe7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ad_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit deny change_profile /onexec re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ audit deny change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ado_bare_ok_1.sd
new file mode 100644
index 0000000..2e133dd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ado_ok_1.sd
new file mode 100644
index 0000000..8b50bc1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_ado_ok_2.sd
new file mode 100644
index 0000000..97b8873
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_ado_ok_3.sd
new file mode 100644
index 0000000..93e3495
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_ado_ok_4.sd
new file mode 100644
index 0000000..9c108b5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_ado_ok_5.sd
new file mode 100644
index 0000000..c9e7c60
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_ado_ok_6.sd
new file mode 100644
index 0000000..e67e652
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_ado_ok_7.sd
new file mode 100644
index 0000000..7814536
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_ado_ok_8.sd
new file mode 100644
index 0000000..60d8384
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_1.sd
new file mode 100644
index 0000000..a303cb0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_2.sd
new file mode 100644
index 0000000..0429f3c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny owner change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_3.sd
new file mode 100644
index 0000000..be8b366
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny owner change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_4.sd
new file mode 100644
index 0000000..63cb9cc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_5.sd
new file mode 100644
index 0000000..2621647
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_6.sd
new file mode 100644
index 0000000..b516876
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_7.sd
new file mode 100644
index 0000000..c905092
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit deny owner change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ado_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_8.sd
new file mode 100644
index 0000000..fec8cee
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ado_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit deny owner change_profile /onexec re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_allow_ok_1.sd
new file mode 100644
index 0000000..ae9b0f5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION allow change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_allow_ok_2.sd
new file mode 100644
index 0000000..a6b5bf1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION allow change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_allow_ok_3.sd
new file mode 100644
index 0000000..63285c4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION allow change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_allow_ok_4.sd
new file mode 100644
index 0000000..729d291
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION allow change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ allow change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_allow_ok_5.sd
new file mode 100644
index 0000000..2c7559d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION allow change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ allow change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_allow_ok_6.sd
new file mode 100644
index 0000000..762ecb3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile /onexec with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_allow_ok_7.sd
new file mode 100644
index 0000000..0ba9101
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile /onexec to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_allow_ok_8.sd
new file mode 100644
index 0000000..5eaa612
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile /onexec with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_1.sd
new file mode 100644
index 0000000..a3ad884
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION allow change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_2.sd
new file mode 100644
index 0000000..2512b89
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION allow change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ allow change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ allow change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ allow change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ allow change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ allow change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ allow change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ allow change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ allow change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_3.sd
new file mode 100644
index 0000000..986f6f3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION allow change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ allow change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ allow change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ allow change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ allow change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ allow change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ allow change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ allow change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ allow change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_4.sd
new file mode 100644
index 0000000..96b2574
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION allow change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ allow change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ allow change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ allow change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ allow change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ allow change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ allow change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_5.sd
new file mode 100644
index 0000000..00bf678
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION allow change_profile /onexec with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ allow change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_6.sd
new file mode 100644
index 0000000..f96f578
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION allow change_profile /onexec with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ allow change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ allow change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ allow change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ allow change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ allow change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ allow change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ allow change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ allow change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ allow change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_7.sd
new file mode 100644
index 0000000..44388d4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION allow change_profile /onexec with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ allow change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ allow change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ allow change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ allow change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ allow change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ allow change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ allow change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ allow change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_allow_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_8.sd
new file mode 100644
index 0000000..e445afe
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_allow_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION allow change_profile /onexec re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ allow change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ allow change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ allow change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ allow change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ allow change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ allow change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ allow change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ allow change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ allow change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ allow change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_allowo_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_allowo_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_allowo_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_allowo_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_allowo_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_allowo_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_allowo_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_allowo_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_allowo_re_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ao_bare_ok_1.sd
new file mode 100644
index 0000000..6d0fb6e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ao_ok_1.sd
new file mode 100644
index 0000000..e5b764a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_ao_ok_2.sd
new file mode 100644
index 0000000..5cd68e0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_ao_ok_3.sd
new file mode 100644
index 0000000..29acd2b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_ao_ok_4.sd
new file mode 100644
index 0000000..84e3bba
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit owner change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_ao_ok_5.sd
new file mode 100644
index 0000000..e2e9798
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit owner change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_ao_ok_6.sd
new file mode 100644
index 0000000..b4471d1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_ao_ok_7.sd
new file mode 100644
index 0000000..5df9e0b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_ao_ok_8.sd
new file mode 100644
index 0000000..ac94130
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_1.sd
new file mode 100644
index 0000000..6bbf85a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_2.sd
new file mode 100644
index 0000000..d0642f5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit owner change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_3.sd
new file mode 100644
index 0000000..c0e3b5f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit owner change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_4.sd
new file mode 100644
index 0000000..2a6aaab
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit owner change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_5.sd
new file mode 100644
index 0000000..3bd5efe
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit owner change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_6.sd
new file mode 100644
index 0000000..0aac4a9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit owner change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_7.sd
new file mode 100644
index 0000000..7482f7e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit owner change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ao_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_8.sd
new file mode 100644
index 0000000..7b04e26
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ao_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit owner change_profile /onexec re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit owner change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_bare_ok_1.sd
new file mode 100644
index 0000000..1cf8018
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_d_bare_ok_1.sd
new file mode 100644
index 0000000..5323b2e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_d_ok_1.sd
new file mode 100644
index 0000000..ff6a210
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_d_ok_2.sd
new file mode 100644
index 0000000..3d6d119
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_d_ok_3.sd
new file mode 100644
index 0000000..5f78552
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_d_ok_4.sd
new file mode 100644
index 0000000..10ce711
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_d_ok_5.sd
new file mode 100644
index 0000000..dd15937
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_d_ok_6.sd
new file mode 100644
index 0000000..09d45da
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile /onexec with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_d_ok_7.sd
new file mode 100644
index 0000000..84b1922
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile /onexec to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_d_ok_8.sd
new file mode 100644
index 0000000..2e0c058
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile /onexec with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_d_re_ok_1.sd
new file mode 100644
index 0000000..4b5efe4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION deny change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_d_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_d_re_ok_2.sd
new file mode 100644
index 0000000..4399e8f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION deny change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_d_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_d_re_ok_3.sd
new file mode 100644
index 0000000..c16918b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION deny change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_d_re_ok_4.sd
new file mode 100644
index 0000000..b0e6955
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION deny change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ deny change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_d_re_ok_5.sd
new file mode 100644
index 0000000..b885818
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny change_profile /onexec with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ deny change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_d_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_d_re_ok_6.sd
new file mode 100644
index 0000000..f8e0d63
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny change_profile /onexec with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ deny change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_d_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_d_re_ok_7.sd
new file mode 100644
index 0000000..2e54277
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny change_profile /onexec with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ deny change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_d_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_d_re_ok_8.sd
new file mode 100644
index 0000000..790c0ba
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_d_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny change_profile /onexec re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ deny change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_da_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_da_bare_ok_1.sd
new file mode 100644
index 0000000..72b83b1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_da_ok_1.sd
new file mode 100644
index 0000000..db5af48
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_da_ok_2.sd
new file mode 100644
index 0000000..4c9a066
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_da_ok_3.sd
new file mode 100644
index 0000000..f0eee77
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_da_ok_4.sd
new file mode 100644
index 0000000..9b35aef
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny audit change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_da_ok_5.sd
new file mode 100644
index 0000000..52cc189
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny audit change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_da_ok_6.sd
new file mode 100644
index 0000000..f7a7377
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_da_ok_7.sd
new file mode 100644
index 0000000..f68fdcb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_da_ok_8.sd
new file mode 100644
index 0000000..f540ede
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_da_re_ok_1.sd
new file mode 100644
index 0000000..73dd18f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_da_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_da_re_ok_2.sd
new file mode 100644
index 0000000..132e680
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny audit change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_da_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_da_re_ok_3.sd
new file mode 100644
index 0000000..1ded3c0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny audit change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_da_re_ok_4.sd
new file mode 100644
index 0000000..7c5061f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ deny audit change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_da_re_ok_5.sd
new file mode 100644
index 0000000..988d252
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny audit change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_da_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_da_re_ok_6.sd
new file mode 100644
index 0000000..0c25539
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny audit change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_da_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_da_re_ok_7.sd
new file mode 100644
index 0000000..e605903
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ deny audit change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_da_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_da_re_ok_8.sd
new file mode 100644
index 0000000..50ccb1e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_da_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny audit change_profile /onexec re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ deny audit change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_do_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_do_bare_ok_1.sd
new file mode 100644
index 0000000..0526c7c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_do_ok_1.sd
new file mode 100644
index 0000000..bff0d40
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_do_ok_2.sd
new file mode 100644
index 0000000..4bc7bbc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_do_ok_3.sd
new file mode 100644
index 0000000..d77ad61
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_do_ok_4.sd
new file mode 100644
index 0000000..00d87f8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny owner change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_do_ok_5.sd
new file mode 100644
index 0000000..3b145e6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny owner change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_do_ok_6.sd
new file mode 100644
index 0000000..106b182
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_do_ok_7.sd
new file mode 100644
index 0000000..b25d5e6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_do_ok_8.sd
new file mode 100644
index 0000000..8583a45
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_do_re_ok_1.sd
new file mode 100644
index 0000000..3f4571c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_do_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_do_re_ok_2.sd
new file mode 100644
index 0000000..cf4b150
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny owner change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_do_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_do_re_ok_3.sd
new file mode 100644
index 0000000..54a2b68
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny owner change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_do_re_ok_4.sd
new file mode 100644
index 0000000..2fbbe96
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ deny owner change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_do_re_ok_5.sd
new file mode 100644
index 0000000..b440878
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny owner change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_do_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_do_re_ok_6.sd
new file mode 100644
index 0000000..82498ae
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny owner change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_do_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_do_re_ok_7.sd
new file mode 100644
index 0000000..fc2ccc9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ deny owner change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_do_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_do_re_ok_8.sd
new file mode 100644
index 0000000..89325be
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_do_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny owner change_profile /onexec re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ deny owner change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_o_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_o_bare_ok_1.sd
new file mode 100644
index 0000000..8e20749
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_o_ok_1.sd
new file mode 100644
index 0000000..ede9810
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_o_ok_2.sd
new file mode 100644
index 0000000..9520232
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_o_ok_3.sd
new file mode 100644
index 0000000..704507f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_o_ok_4.sd
new file mode 100644
index 0000000..ea12496
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ owner change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_o_ok_5.sd
new file mode 100644
index 0000000..3d68b19
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION owner change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ owner change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_o_ok_6.sd
new file mode 100644
index 0000000..549d715
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile /onexec with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_o_ok_7.sd
new file mode 100644
index 0000000..3239bdf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile /onexec to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_o_ok_8.sd
new file mode 100644
index 0000000..5c66b31
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile /onexec with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_o_re_ok_1.sd
new file mode 100644
index 0000000..b1142f9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION owner change_profile /onexec
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_o_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_o_re_ok_2.sd
new file mode 100644
index 0000000..9a4acd1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION owner change_profile /onexec to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ owner change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ owner change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ owner change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ owner change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ owner change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ owner change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ owner change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ owner change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_o_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_o_re_ok_3.sd
new file mode 100644
index 0000000..2298504
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION owner change_profile /onexec with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ owner change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ owner change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ owner change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ owner change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ owner change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ owner change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ owner change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ owner change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_o_re_ok_4.sd
new file mode 100644
index 0000000..11dc02a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION owner change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ owner change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ owner change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ owner change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ owner change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ owner change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ owner change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_o_re_ok_5.sd
new file mode 100644
index 0000000..7b2d5ee
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION owner change_profile /onexec with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ owner change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_o_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_o_re_ok_6.sd
new file mode 100644
index 0000000..014829b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION owner change_profile /onexec with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ owner change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ owner change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ owner change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ owner change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ owner change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ owner change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ owner change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ owner change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ owner change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_o_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_o_re_ok_7.sd
new file mode 100644
index 0000000..20ec8c4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION owner change_profile /onexec with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ owner change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ owner change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ owner change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ owner change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ owner change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ owner change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ owner change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ owner change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_o_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_o_re_ok_8.sd
new file mode 100644
index 0000000..0a410be
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_o_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION owner change_profile /onexec re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ owner change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ owner change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ owner change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ owner change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ owner change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ owner change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ owner change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ owner change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ owner change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ owner change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_ok_1.sd
new file mode 100644
index 0000000..d51ae1b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_ok_2.sd
new file mode 100644
index 0000000..d24ae10
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_ok_3.sd
new file mode 100644
index 0000000..2d3179e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_ok_4.sd
new file mode 100644
index 0000000..31c2104
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ change_profile /onexec -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_ok_5.sd
new file mode 100644
index 0000000..3b7d45e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION change_profile /onexec with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ change_profile /onexec -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_ok_6.sd
new file mode 100644
index 0000000..a5fd2d5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile /onexec with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_ok_7.sd
new file mode 100644
index 0000000..2b318ca
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile /onexec to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_ok_8.sd
new file mode 100644
index 0000000..23b185e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile /onexec with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onx_re_ok_1.sd
new file mode 100644
index 0000000..1ebfc68
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION change_profile /onexec
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ change_profile /onexec -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ change_profile /onexec -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ change_profile /onexec -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onx_re_ok_2.sd
new file mode 100644
index 0000000..7578203
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION change_profile /onexec to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ change_profile /onexec -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ change_profile /onexec -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ change_profile /onexec -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ change_profile /onexec -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ change_profile /onexec -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ change_profile /onexec -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ change_profile /onexec -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ change_profile /onexec -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ change_profile /onexec -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ change_profile /onexec -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ change_profile /onexec -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ change_profile /onexec -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ change_profile /onexec -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ change_profile /onexec -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onx_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onx_re_ok_3.sd
new file mode 100644
index 0000000..4d5c054
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION change_profile /onexec with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /onexec -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ change_profile /onexec -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ change_profile /onexec -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ change_profile /onexec -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ change_profile /onexec -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ change_profile /onexec -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ change_profile /onexec -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ change_profile /onexec -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ change_profile /onexec -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ change_profile /onexec -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ change_profile /onexec -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ change_profile /onexec -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ change_profile /onexec -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ change_profile /onexec -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ change_profile /onexec -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onx_re_ok_4.sd
new file mode 100644
index 0000000..ebcdbfa
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION change_profile /onexec with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ change_profile /onexec -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ change_profile /onexec -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ change_profile /onexec -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ change_profile /onexec -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ change_profile /onexec -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ change_profile /onexec -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ change_profile /onexec -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ change_profile /onexec -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ change_profile /onexec -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ change_profile /onexec -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onx_re_ok_5.sd
new file mode 100644
index 0000000..e87a955
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION change_profile /onexec with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ change_profile /onexec -> *,
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> **,
+}
+
+/usr/bin/foo3 {
+ change_profile /onexec -> ?,
+}
+
+/usr/bin/foo4 {
+ change_profile /onexec -> [ab],
+}
+
+/usr/bin/foo5 {
+ change_profile /onexec -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onx_re_ok_6.sd
new file mode 100644
index 0000000..31dbafc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION change_profile /onexec with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ change_profile /onexec -> *//ab,
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> **//ab,
+}
+
+/usr/bin/foo3 {
+ change_profile /onexec -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ change_profile /onexec -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ change_profile /onexec -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ change_profile /onexec -> ab//*,
+}
+
+/usr/bin/foo7 {
+ change_profile /onexec -> ab//**,
+}
+
+/usr/bin/foo8 {
+ change_profile /onexec -> ab//?,
+}
+
+/usr/bin/foo9 {
+ change_profile /onexec -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ change_profile /onexec -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ change_profile /onexec -> *//*,
+}
+
+/usr/bin/foo12 {
+ change_profile /onexec -> **//*,
+}
+
+/usr/bin/foo13 {
+ change_profile /onexec -> ?//*,
+}
+
+/usr/bin/foo14 {
+ change_profile /onexec -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ change_profile /onexec -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onx_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onx_re_ok_7.sd
new file mode 100644
index 0000000..44362fc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION change_profile /onexec with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ change_profile /onexec -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ change_profile /onexec -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ change_profile /onexec -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ change_profile /onexec -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ change_profile /onexec -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ change_profile /onexec -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ change_profile /onexec -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ change_profile /onexec -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ change_profile /onexec -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ change_profile /onexec -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ change_profile /onexec -> :*:*,
+}
+
+/usr/bin/foo12 {
+ change_profile /onexec -> :**:**,
+}
+
+/usr/bin/foo13 {
+ change_profile /onexec -> :?:?,
+}
+
+/usr/bin/foo14 {
+ change_profile /onexec -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ change_profile /onexec -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onx_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onx_re_ok_8.sd
new file mode 100644
index 0000000..bce3aa3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onx_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION change_profile /onexec re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ change_profile /onexec -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ change_profile /onexec -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ change_profile /onexec -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ change_profile /onexec -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ change_profile /onexec -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ change_profile /onexec -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ change_profile /onexec -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ change_profile /onexec -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ change_profile /onexec -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ change_profile /onexec -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_a_bare_ok_1.sd
new file mode 100644
index 0000000..1c91671
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_a_ok_1.sd
new file mode 100644
index 0000000..a833c2b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_a_ok_2.sd
new file mode 100644
index 0000000..5b5765d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_a_ok_3.sd
new file mode 100644
index 0000000..a81f1bb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_a_ok_4.sd
new file mode 100644
index 0000000..7fd923d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_a_ok_5.sd
new file mode 100644
index 0000000..99aada6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_a_ok_6.sd
new file mode 100644
index 0000000..d906b80
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_a_ok_7.sd
new file mode 100644
index 0000000..6fcf19b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_a_ok_8.sd
new file mode 100644
index 0000000..85aed1f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_1.sd
new file mode 100644
index 0000000..298f45d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_2.sd
new file mode 100644
index 0000000..febb9db
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_3.sd
new file mode 100644
index 0000000..82616b3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_4.sd
new file mode 100644
index 0000000..8c50848
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_5.sd
new file mode 100644
index 0000000..39fa479
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ audit change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_6.sd
new file mode 100644
index 0000000..2331747
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_7.sd
new file mode 100644
index 0000000..7b501da
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_8.sd
new file mode 100644
index 0000000..3b6004f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_a_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_aa_re_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_1.sd
new file mode 100644
index 0000000..7489401
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_2.sd
new file mode 100644
index 0000000..bc44081
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_3.sd
new file mode 100644
index 0000000..98aa637
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_4.sd
new file mode 100644
index 0000000..09fc4e1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit allow owner change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_5.sd
new file mode 100644
index 0000000..c95ec8f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit allow owner change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_6.sd
new file mode 100644
index 0000000..535950b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_7.sd
new file mode 100644
index 0000000..04fdb61
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_8.sd
new file mode 100644
index 0000000..133de73
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_1.sd
new file mode 100644
index 0000000..57addd2
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_2.sd
new file mode 100644
index 0000000..47acebc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit allow owner change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_3.sd
new file mode 100644
index 0000000..fba77ec
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit allow owner change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_4.sd
new file mode 100644
index 0000000..3ba15e4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit allow owner change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_5.sd
new file mode 100644
index 0000000..27878d5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit allow owner change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_6.sd
new file mode 100644
index 0000000..ea5a553
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit allow owner change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_7.sd
new file mode 100644
index 0000000..d2f9e39
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit allow owner change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_8.sd
new file mode 100644
index 0000000..f0df7af
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_aao_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit allow owner change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit allow owner change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_bare_ok_1.sd
new file mode 100644
index 0000000..fa2bc7d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_1.sd
new file mode 100644
index 0000000..341feae
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_2.sd
new file mode 100644
index 0000000..0e400d8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_3.sd
new file mode 100644
index 0000000..8f461d9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_4.sd
new file mode 100644
index 0000000..a4b7ba6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_5.sd
new file mode 100644
index 0000000..068480a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_6.sd
new file mode 100644
index 0000000..7939aba
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_7.sd
new file mode 100644
index 0000000..0633d0e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_8.sd
new file mode 100644
index 0000000..b754750
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_1.sd
new file mode 100644
index 0000000..10caaf0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit deny change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_2.sd
new file mode 100644
index 0000000..ed3bfa1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit deny change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_3.sd
new file mode 100644
index 0000000..373d232
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit deny change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_4.sd
new file mode 100644
index 0000000..a8cd945
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit deny change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit deny change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_5.sd
new file mode 100644
index 0000000..c4a3bf9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit deny change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit deny change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_6.sd
new file mode 100644
index 0000000..0a0d028
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit deny change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_7.sd
new file mode 100644
index 0000000..35ff526
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit deny change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_8.sd
new file mode 100644
index 0000000..27b6ea3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ad_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit deny change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit deny change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_bare_ok_1.sd
new file mode 100644
index 0000000..8b1fa1b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_1.sd
new file mode 100644
index 0000000..ac60971
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_2.sd
new file mode 100644
index 0000000..8faa4ef
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_3.sd
new file mode 100644
index 0000000..cd17ce3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_4.sd
new file mode 100644
index 0000000..0a4ff55
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny owner change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_5.sd
new file mode 100644
index 0000000..8950064
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny owner change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_6.sd
new file mode 100644
index 0000000..7af18d1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_7.sd
new file mode 100644
index 0000000..966d4ff
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_8.sd
new file mode 100644
index 0000000..0874b2f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_1.sd
new file mode 100644
index 0000000..377a9d6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_2.sd
new file mode 100644
index 0000000..8807d02
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny owner change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_3.sd
new file mode 100644
index 0000000..71656ef
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny owner change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_4.sd
new file mode 100644
index 0000000..4c155c4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit deny owner change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_5.sd
new file mode 100644
index 0000000..45fb7bb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit deny owner change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_6.sd
new file mode 100644
index 0000000..730b44b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit deny owner change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_7.sd
new file mode 100644
index 0000000..31e859c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit deny owner change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_8.sd
new file mode 100644
index 0000000..26e87dd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ado_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit deny owner change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit deny owner change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_1.sd
new file mode 100644
index 0000000..97162ab
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION allow change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ allow change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_2.sd
new file mode 100644
index 0000000..f3be83d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION allow change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ allow change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_3.sd
new file mode 100644
index 0000000..acf464d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION allow change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ allow change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_4.sd
new file mode 100644
index 0000000..7ea6a07
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION allow change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ allow change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_5.sd
new file mode 100644
index 0000000..745e753
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION allow change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ allow change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_6.sd
new file mode 100644
index 0000000..ce5eeaf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ allow change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_7.sd
new file mode 100644
index 0000000..2baa8da
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ allow change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_8.sd
new file mode 100644
index 0000000..b9737f1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ allow change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_1.sd
new file mode 100644
index 0000000..51f702f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION allow change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ allow change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_2.sd
new file mode 100644
index 0000000..01f1e52
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION allow change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ allow change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ allow change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ allow change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ allow change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ allow change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ allow change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ allow change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ allow change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ allow change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ allow change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ allow change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ allow change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ allow change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_3.sd
new file mode 100644
index 0000000..f1ee1bf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION allow change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ allow change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ allow change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ allow change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ allow change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ allow change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ allow change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ allow change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ allow change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ allow change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ allow change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ allow change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ allow change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ allow change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_4.sd
new file mode 100644
index 0000000..c6de1da
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION allow change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ allow change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ allow change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ allow change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ allow change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ allow change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ allow change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ allow change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ allow change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_5.sd
new file mode 100644
index 0000000..46143b0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION allow change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ allow change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ allow change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_6.sd
new file mode 100644
index 0000000..01b4cc7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION allow change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ allow change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ allow change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ allow change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ allow change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ allow change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ allow change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ allow change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ allow change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ allow change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ allow change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ allow change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ allow change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ allow change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_7.sd
new file mode 100644
index 0000000..be6c42a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION allow change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ allow change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ allow change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ allow change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ allow change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ allow change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ allow change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ allow change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ allow change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ allow change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ allow change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_8.sd
new file mode 100644
index 0000000..c6f499a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_allow_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION allow change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ allow change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ allow change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ allow change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ allow change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ allow change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ allow change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ allow change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ allow change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ allow change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ allow change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_allowo_re_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_bare_ok_1.sd
new file mode 100644
index 0000000..d029ff0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_1.sd
new file mode 100644
index 0000000..b553d68
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_2.sd
new file mode 100644
index 0000000..2a0c604
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_3.sd
new file mode 100644
index 0000000..cf7f15f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_4.sd
new file mode 100644
index 0000000..3dd4f79
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit owner change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_5.sd
new file mode 100644
index 0000000..787ec56
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit owner change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit owner change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_6.sd
new file mode 100644
index 0000000..10d5460
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_7.sd
new file mode 100644
index 0000000..040705b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_8.sd
new file mode 100644
index 0000000..5b66662
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_1.sd
new file mode 100644
index 0000000..4316004
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_2.sd
new file mode 100644
index 0000000..0019f1d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit owner change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_3.sd
new file mode 100644
index 0000000..0fb3bb8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit owner change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_4.sd
new file mode 100644
index 0000000..84ea2ba
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit owner change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_5.sd
new file mode 100644
index 0000000..e4e0b45
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit owner change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit owner change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_6.sd
new file mode 100644
index 0000000..7370d64
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit owner change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit owner change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_7.sd
new file mode 100644
index 0000000..1e9125f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit owner change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit owner change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_8.sd
new file mode 100644
index 0000000..2996f81
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ao_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit owner change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit owner change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_bare_ok_1.sd
new file mode 100644
index 0000000..d96b216
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_d_bare_ok_1.sd
new file mode 100644
index 0000000..c030328
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_d_ok_1.sd
new file mode 100644
index 0000000..3524dd0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_d_ok_2.sd
new file mode 100644
index 0000000..613ebf5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_d_ok_3.sd
new file mode 100644
index 0000000..2616596
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_d_ok_4.sd
new file mode 100644
index 0000000..86ac59a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_d_ok_5.sd
new file mode 100644
index 0000000..22a82b8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_d_ok_6.sd
new file mode 100644
index 0000000..3410041
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_d_ok_7.sd
new file mode 100644
index 0000000..b533402
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_d_ok_8.sd
new file mode 100644
index 0000000..7ae5bc9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_1.sd
new file mode 100644
index 0000000..a4b72ac
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION deny change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_2.sd
new file mode 100644
index 0000000..6c27ed3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION deny change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_3.sd
new file mode 100644
index 0000000..222c594
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION deny change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_4.sd
new file mode 100644
index 0000000..ee9f15f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION deny change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ deny change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_5.sd
new file mode 100644
index 0000000..9271feb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ deny change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_6.sd
new file mode 100644
index 0000000..5c76f9b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_7.sd
new file mode 100644
index 0000000..d2172b9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ deny change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_8.sd
new file mode 100644
index 0000000..319e638
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_d_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ deny change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_da_bare_ok_1.sd
new file mode 100644
index 0000000..f8b4054
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_da_ok_1.sd
new file mode 100644
index 0000000..54262b0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_da_ok_2.sd
new file mode 100644
index 0000000..fab696f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_da_ok_3.sd
new file mode 100644
index 0000000..172bf2d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_da_ok_4.sd
new file mode 100644
index 0000000..0a213d2
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny audit change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny audit change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_da_ok_5.sd
new file mode 100644
index 0000000..b635175
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny audit change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny audit change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_da_ok_6.sd
new file mode 100644
index 0000000..3acae27
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_da_ok_7.sd
new file mode 100644
index 0000000..8e83c41
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_da_ok_8.sd
new file mode 100644
index 0000000..c6d9a0c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_1.sd
new file mode 100644
index 0000000..efaf4ed
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION deny audit change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_2.sd
new file mode 100644
index 0000000..47cffc0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION deny audit change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny audit change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_3.sd
new file mode 100644
index 0000000..92328a7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION deny audit change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny audit change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_4.sd
new file mode 100644
index 0000000..ed74b68
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION deny audit change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ deny audit change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_5.sd
new file mode 100644
index 0000000..e4fb315
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny audit change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny audit change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_6.sd
new file mode 100644
index 0000000..4d8dc83
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny audit change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny audit change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_7.sd
new file mode 100644
index 0000000..e87e83e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny audit change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ deny audit change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_8.sd
new file mode 100644
index 0000000..e255f6d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_da_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny audit change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ deny audit change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_do_bare_ok_1.sd
new file mode 100644
index 0000000..9080aa5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_do_ok_1.sd
new file mode 100644
index 0000000..dc049d1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_do_ok_2.sd
new file mode 100644
index 0000000..e22aacf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_do_ok_3.sd
new file mode 100644
index 0000000..592599b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_do_ok_4.sd
new file mode 100644
index 0000000..850d5db
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny owner change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_do_ok_5.sd
new file mode 100644
index 0000000..ee5243b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny owner change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny owner change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_do_ok_6.sd
new file mode 100644
index 0000000..1a1b91d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_do_ok_7.sd
new file mode 100644
index 0000000..645f7c0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_do_ok_8.sd
new file mode 100644
index 0000000..efce517
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_1.sd
new file mode 100644
index 0000000..f8e6baf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION deny owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_2.sd
new file mode 100644
index 0000000..bc62bf5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION deny owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny owner change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_3.sd
new file mode 100644
index 0000000..4d18100
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION deny owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny owner change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_4.sd
new file mode 100644
index 0000000..389af1f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION deny owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ deny owner change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_5.sd
new file mode 100644
index 0000000..130ff9a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny owner change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny owner change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_6.sd
new file mode 100644
index 0000000..1cf89b3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny owner change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny owner change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_7.sd
new file mode 100644
index 0000000..7fa609b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny owner change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ deny owner change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_8.sd
new file mode 100644
index 0000000..edaba93
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_do_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny owner change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ deny owner change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_o_bare_ok_1.sd
new file mode 100644
index 0000000..4ece83d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_o_ok_1.sd
new file mode 100644
index 0000000..efc7e12
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_o_ok_2.sd
new file mode 100644
index 0000000..d77fdbb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_o_ok_3.sd
new file mode 100644
index 0000000..df2ab97
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_o_ok_4.sd
new file mode 100644
index 0000000..4129239
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ owner change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_o_ok_5.sd
new file mode 100644
index 0000000..67bb5e4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION owner change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ owner change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_o_ok_6.sd
new file mode 100644
index 0000000..24baad7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_o_ok_7.sd
new file mode 100644
index 0000000..0990d35
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_o_ok_8.sd
new file mode 100644
index 0000000..58cb594
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_1.sd
new file mode 100644
index 0000000..d25d929
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION owner change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_2.sd
new file mode 100644
index 0000000..387745e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION owner change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ owner change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ owner change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ owner change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ owner change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ owner change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ owner change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ owner change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ owner change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ owner change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ owner change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ owner change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ owner change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_3.sd
new file mode 100644
index 0000000..605c410
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION owner change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ owner change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ owner change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ owner change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ owner change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ owner change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ owner change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ owner change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ owner change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ owner change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ owner change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ owner change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ owner change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_4.sd
new file mode 100644
index 0000000..e1c9bcb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION owner change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ owner change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ owner change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ owner change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ owner change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ owner change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ owner change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ owner change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ owner change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_5.sd
new file mode 100644
index 0000000..23ba310
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION owner change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ owner change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ owner change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_6.sd
new file mode 100644
index 0000000..d000a09
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION owner change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ owner change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ owner change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ owner change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ owner change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ owner change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ owner change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ owner change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ owner change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ owner change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ owner change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ owner change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ owner change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ owner change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_7.sd
new file mode 100644
index 0000000..f562841
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION owner change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ owner change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ owner change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ owner change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ owner change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ owner change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ owner change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ owner change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ owner change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ owner change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ owner change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_8.sd
new file mode 100644
index 0000000..1c9e59d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_o_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION owner change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ owner change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ owner change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ owner change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ owner change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ owner change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ owner change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ owner change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ owner change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ owner change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ owner change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_ok_1.sd
new file mode 100644
index 0000000..a406551
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_ok_2.sd
new file mode 100644
index 0000000..db9bc27
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_ok_3.sd
new file mode 100644
index 0000000..fb726c3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_ok_4.sd
new file mode 100644
index 0000000..248bf35
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ change_profile bad -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_ok_5.sd
new file mode 100644
index 0000000..87d0a80
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION change_profile bad with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ change_profile bad -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_ok_6.sd
new file mode 100644
index 0000000..7ef18b0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile bad with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_ok_7.sd
new file mode 100644
index 0000000..0e023a5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile bad to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_ok_8.sd
new file mode 100644
index 0000000..74b2737
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile bad with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxbad_re_ok_1.sd
new file mode 100644
index 0000000..f36c0bc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION change_profile bad
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ change_profile bad -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ change_profile bad -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ change_profile bad -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxbad_re_ok_2.sd
new file mode 100644
index 0000000..2b26786
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION change_profile bad to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ change_profile bad -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ change_profile bad -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ change_profile bad -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ change_profile bad -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ change_profile bad -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ change_profile bad -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ change_profile bad -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ change_profile bad -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ change_profile bad -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ change_profile bad -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ change_profile bad -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ change_profile bad -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ change_profile bad -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ change_profile bad -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxbad_re_ok_3.sd
new file mode 100644
index 0000000..99d9aec
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION change_profile bad with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ change_profile bad -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ change_profile bad -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ change_profile bad -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ change_profile bad -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ change_profile bad -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ change_profile bad -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ change_profile bad -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ change_profile bad -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ change_profile bad -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ change_profile bad -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ change_profile bad -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ change_profile bad -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ change_profile bad -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ change_profile bad -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ change_profile bad -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxbad_re_ok_4.sd
new file mode 100644
index 0000000..4d869c6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION change_profile bad with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ change_profile bad -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ change_profile bad -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ change_profile bad -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ change_profile bad -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ change_profile bad -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ change_profile bad -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ change_profile bad -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ change_profile bad -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ change_profile bad -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ change_profile bad -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxbad_re_ok_5.sd
new file mode 100644
index 0000000..cd054dd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION change_profile bad with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ change_profile bad -> *,
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> **,
+}
+
+/usr/bin/foo3 {
+ change_profile bad -> ?,
+}
+
+/usr/bin/foo4 {
+ change_profile bad -> [ab],
+}
+
+/usr/bin/foo5 {
+ change_profile bad -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxbad_re_ok_6.sd
new file mode 100644
index 0000000..4532896
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION change_profile bad with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ change_profile bad -> *//ab,
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> **//ab,
+}
+
+/usr/bin/foo3 {
+ change_profile bad -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ change_profile bad -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ change_profile bad -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ change_profile bad -> ab//*,
+}
+
+/usr/bin/foo7 {
+ change_profile bad -> ab//**,
+}
+
+/usr/bin/foo8 {
+ change_profile bad -> ab//?,
+}
+
+/usr/bin/foo9 {
+ change_profile bad -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ change_profile bad -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ change_profile bad -> *//*,
+}
+
+/usr/bin/foo12 {
+ change_profile bad -> **//*,
+}
+
+/usr/bin/foo13 {
+ change_profile bad -> ?//*,
+}
+
+/usr/bin/foo14 {
+ change_profile bad -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ change_profile bad -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxbad_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxbad_re_ok_7.sd
new file mode 100644
index 0000000..1b65b77
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION change_profile bad with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ change_profile bad -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ change_profile bad -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ change_profile bad -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ change_profile bad -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ change_profile bad -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ change_profile bad -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ change_profile bad -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ change_profile bad -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ change_profile bad -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ change_profile bad -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ change_profile bad -> :*:*,
+}
+
+/usr/bin/foo12 {
+ change_profile bad -> :**:**,
+}
+
+/usr/bin/foo13 {
+ change_profile bad -> :?:?,
+}
+
+/usr/bin/foo14 {
+ change_profile bad -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ change_profile bad -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxbad_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxbad_re_ok_8.sd
new file mode 100644
index 0000000..82754eb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxbad_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION change_profile bad re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ change_profile bad -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ change_profile bad -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ change_profile bad -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ change_profile bad -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ change_profile bad -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ change_profile bad -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ change_profile bad -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ change_profile bad -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ change_profile bad -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ change_profile bad -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_a_bare_ok_1.sd
new file mode 100644
index 0000000..ea7c936
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /**,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_a_ok_1.sd
new file mode 100644
index 0000000..826a868
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_a_ok_2.sd
new file mode 100644
index 0000000..1f0d105
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_a_ok_3.sd
new file mode 100644
index 0000000..97263ca
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_a_ok_4.sd
new file mode 100644
index 0000000..5975daf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_a_ok_5.sd
new file mode 100644
index 0000000..0e4b0e6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_a_ok_6.sd
new file mode 100644
index 0000000..75ddf5b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile /** with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_a_ok_7.sd
new file mode 100644
index 0000000..9177f29
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile /** to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_a_ok_8.sd
new file mode 100644
index 0000000..edfb799
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile /** with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_1.sd
new file mode 100644
index 0000000..8834a77
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_2.sd
new file mode 100644
index 0000000..c599f79
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_3.sd
new file mode 100644
index 0000000..709ca8d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_4.sd
new file mode 100644
index 0000000..98bb390
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_5.sd
new file mode 100644
index 0000000..8b17913
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit change_profile /** with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ audit change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_6.sd
new file mode 100644
index 0000000..df0b708
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit change_profile /** with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ audit change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_7.sd
new file mode 100644
index 0000000..08f1f57
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit change_profile /** with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ audit change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_a_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_8.sd
new file mode 100644
index 0000000..5c5dec4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_a_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit change_profile /** re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ audit change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_aa_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_aa_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_aa_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_aa_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_aa_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_aa_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_aa_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_aa_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_aa_re_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_aao_ok_1.sd
new file mode 100644
index 0000000..c2490b8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit allow owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_aao_ok_2.sd
new file mode 100644
index 0000000..58fdafe
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_aao_ok_3.sd
new file mode 100644
index 0000000..91be7dd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_aao_ok_4.sd
new file mode 100644
index 0000000..86bd1eb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit allow owner change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_aao_ok_5.sd
new file mode 100644
index 0000000..808828c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit allow owner change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_aao_ok_6.sd
new file mode 100644
index 0000000..20a8ee4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_aao_ok_7.sd
new file mode 100644
index 0000000..5b16140
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_aao_ok_8.sd
new file mode 100644
index 0000000..6c48073
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_1.sd
new file mode 100644
index 0000000..6b2ef11
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit allow owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_2.sd
new file mode 100644
index 0000000..5f8df69
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit allow owner change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_3.sd
new file mode 100644
index 0000000..8336cfc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit allow owner change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit allow owner change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_4.sd
new file mode 100644
index 0000000..c4b6e6c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit allow owner change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_5.sd
new file mode 100644
index 0000000..1489151
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit allow owner change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_6.sd
new file mode 100644
index 0000000..4479712
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit allow owner change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_7.sd
new file mode 100644
index 0000000..5e781f6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit allow owner change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_8.sd
new file mode 100644
index 0000000..a6e02d1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_aao_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit allow owner change_profile /** re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit allow owner change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ad_bare_ok_1.sd
new file mode 100644
index 0000000..4b6df8c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /**,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ad_ok_1.sd
new file mode 100644
index 0000000..217d3dd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_ad_ok_2.sd
new file mode 100644
index 0000000..2daea31
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_ad_ok_3.sd
new file mode 100644
index 0000000..0e42ff9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_ad_ok_4.sd
new file mode 100644
index 0000000..34037c0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_ad_ok_5.sd
new file mode 100644
index 0000000..30a5c42
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_ad_ok_6.sd
new file mode 100644
index 0000000..bf2ba8f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile /** with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_ad_ok_7.sd
new file mode 100644
index 0000000..a24dca1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile /** to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_ad_ok_8.sd
new file mode 100644
index 0000000..7d91416
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile /** with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_1.sd
new file mode 100644
index 0000000..39b0727
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit deny change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_2.sd
new file mode 100644
index 0000000..3aef156
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit deny change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_3.sd
new file mode 100644
index 0000000..9ea4757
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit deny change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ audit deny change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_4.sd
new file mode 100644
index 0000000..3e35222
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit deny change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit deny change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_5.sd
new file mode 100644
index 0000000..37329b8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit deny change_profile /** with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ audit deny change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_6.sd
new file mode 100644
index 0000000..2b73f31
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny change_profile /** with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ audit deny change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_7.sd
new file mode 100644
index 0000000..35ae8c8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny change_profile /** with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ audit deny change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_8.sd
new file mode 100644
index 0000000..9c55731
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ad_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit deny change_profile /** re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ audit deny change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ado_bare_ok_1.sd
new file mode 100644
index 0000000..e3132ba
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /**,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ado_ok_1.sd
new file mode 100644
index 0000000..9431f01
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_ado_ok_2.sd
new file mode 100644
index 0000000..0804d1f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_ado_ok_3.sd
new file mode 100644
index 0000000..abffc68
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_ado_ok_4.sd
new file mode 100644
index 0000000..80189c8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny owner change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_ado_ok_5.sd
new file mode 100644
index 0000000..db413fa
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit deny owner change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_ado_ok_6.sd
new file mode 100644
index 0000000..034ca22
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_ado_ok_7.sd
new file mode 100644
index 0000000..c52304b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_ado_ok_8.sd
new file mode 100644
index 0000000..60727e2
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_1.sd
new file mode 100644
index 0000000..6f33454
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit deny owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_2.sd
new file mode 100644
index 0000000..3aae061
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny owner change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_3.sd
new file mode 100644
index 0000000..1caa1cf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit deny owner change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny owner change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_4.sd
new file mode 100644
index 0000000..7101723
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit deny owner change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_5.sd
new file mode 100644
index 0000000..5bd8fb7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit deny owner change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_6.sd
new file mode 100644
index 0000000..75f92b0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit deny owner change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_7.sd
new file mode 100644
index 0000000..ecd0e49
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit deny owner change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_8.sd
new file mode 100644
index 0000000..119d66b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ado_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit deny owner change_profile /** re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit deny owner change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_allow_ok_1.sd
new file mode 100644
index 0000000..b0ed557
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION allow change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_allow_ok_2.sd
new file mode 100644
index 0000000..4f1c215
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION allow change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_allow_ok_3.sd
new file mode 100644
index 0000000..e3c9bf6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION allow change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_allow_ok_4.sd
new file mode 100644
index 0000000..0d66a66
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION allow change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ allow change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_allow_ok_5.sd
new file mode 100644
index 0000000..c02675a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION allow change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ allow change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_allow_ok_6.sd
new file mode 100644
index 0000000..1d518bf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile /** with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_allow_ok_7.sd
new file mode 100644
index 0000000..af9007d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile /** to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_allow_ok_8.sd
new file mode 100644
index 0000000..cb03f4d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile /** with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_1.sd
new file mode 100644
index 0000000..b628c45
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION allow change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_2.sd
new file mode 100644
index 0000000..e381491
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION allow change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ allow change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ allow change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ allow change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ allow change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ allow change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ allow change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ allow change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ allow change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_3.sd
new file mode 100644
index 0000000..b59b1ea
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION allow change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ allow change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ allow change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ allow change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ allow change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ allow change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ allow change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ allow change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ allow change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ allow change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_4.sd
new file mode 100644
index 0000000..288d66d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION allow change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ allow change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ allow change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ allow change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ allow change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ allow change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ allow change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_5.sd
new file mode 100644
index 0000000..3d4e5f3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION allow change_profile /** with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ allow change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_6.sd
new file mode 100644
index 0000000..2ce73f5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION allow change_profile /** with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ allow change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ allow change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ allow change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ allow change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ allow change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ allow change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ allow change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ allow change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ allow change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_7.sd
new file mode 100644
index 0000000..7952254
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION allow change_profile /** with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ allow change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ allow change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ allow change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ allow change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ allow change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ allow change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ allow change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ allow change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ allow change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ allow change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_8.sd
new file mode 100644
index 0000000..bfa5f64
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_allow_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION allow change_profile /** re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ allow change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ allow change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ allow change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ allow change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ allow change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ allow change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ allow change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ allow change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ allow change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ allow change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_allowo_re_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ao_bare_ok_1.sd
new file mode 100644
index 0000000..4fe0c3e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /**,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ao_ok_1.sd
new file mode 100644
index 0000000..e1a8dca
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_ao_ok_2.sd
new file mode 100644
index 0000000..a081942
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_ao_ok_3.sd
new file mode 100644
index 0000000..c06f463
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION audit owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_ao_ok_4.sd
new file mode 100644
index 0000000..151b9bf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit owner change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_ao_ok_5.sd
new file mode 100644
index 0000000..b916150
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION audit owner change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ audit owner change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_ao_ok_6.sd
new file mode 100644
index 0000000..0f76043
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile /** with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_ao_ok_7.sd
new file mode 100644
index 0000000..d8d5a28
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile /** to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_ao_ok_8.sd
new file mode 100644
index 0000000..4173760
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile /** with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_1.sd
new file mode 100644
index 0000000..27aa57f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION audit owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_2.sd
new file mode 100644
index 0000000..acc70d0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION audit owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit owner change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_3.sd
new file mode 100644
index 0000000..043cb51
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION audit owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ audit owner change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit owner change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_4.sd
new file mode 100644
index 0000000..0a82b77
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION audit owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ audit owner change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_5.sd
new file mode 100644
index 0000000..6b900cb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit owner change_profile /** with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit owner change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_6.sd
new file mode 100644
index 0000000..39e9df1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit owner change_profile /** with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ audit owner change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_7.sd
new file mode 100644
index 0000000..c8f8160
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION audit owner change_profile /** with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ audit owner change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_8.sd
new file mode 100644
index 0000000..629de3f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ao_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit owner change_profile /** re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit owner change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_bare_ok_1.sd
new file mode 100644
index 0000000..3589a52
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /**,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_d_bare_ok_1.sd
new file mode 100644
index 0000000..4e00322
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /**,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_d_ok_1.sd
new file mode 100644
index 0000000..6fc3de5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_d_ok_2.sd
new file mode 100644
index 0000000..a7b70ef
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_d_ok_3.sd
new file mode 100644
index 0000000..0be5bc8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_d_ok_4.sd
new file mode 100644
index 0000000..d8b53dc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_d_ok_5.sd
new file mode 100644
index 0000000..792f388
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_d_ok_6.sd
new file mode 100644
index 0000000..089dce3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile /** with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_d_ok_7.sd
new file mode 100644
index 0000000..d8e994d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile /** to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_d_ok_8.sd
new file mode 100644
index 0000000..c0ab07e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile /** with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_1.sd
new file mode 100644
index 0000000..5783e02
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION deny change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_2.sd
new file mode 100644
index 0000000..e41dae4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION deny change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_3.sd
new file mode 100644
index 0000000..229b998
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION deny change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ deny change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_4.sd
new file mode 100644
index 0000000..73610fa
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION deny change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ deny change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_5.sd
new file mode 100644
index 0000000..aff5f53
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny change_profile /** with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ deny change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_6.sd
new file mode 100644
index 0000000..39b7a1f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny change_profile /** with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ deny change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_7.sd
new file mode 100644
index 0000000..bdc9bd3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny change_profile /** with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ deny change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_d_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_8.sd
new file mode 100644
index 0000000..62935fa
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_d_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny change_profile /** re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ deny change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_da_bare_ok_1.sd
new file mode 100644
index 0000000..b9b575e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /**,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_da_ok_1.sd
new file mode 100644
index 0000000..64991de
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_da_ok_2.sd
new file mode 100644
index 0000000..38d15b4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_da_ok_3.sd
new file mode 100644
index 0000000..9beed59
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny audit change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_da_ok_4.sd
new file mode 100644
index 0000000..5a5dee1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny audit change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny audit change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_da_ok_5.sd
new file mode 100644
index 0000000..da37d05
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny audit change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny audit change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_da_ok_6.sd
new file mode 100644
index 0000000..5852634
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile /** with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_da_ok_7.sd
new file mode 100644
index 0000000..1603b9c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile /** to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_da_ok_8.sd
new file mode 100644
index 0000000..949220d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile /** with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_1.sd
new file mode 100644
index 0000000..7b83b90
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION deny audit change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_2.sd
new file mode 100644
index 0000000..4476aac
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION deny audit change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny audit change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_3.sd
new file mode 100644
index 0000000..6390cb3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION deny audit change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny audit change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny audit change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_4.sd
new file mode 100644
index 0000000..d85cff6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION deny audit change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ deny audit change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_5.sd
new file mode 100644
index 0000000..e9888b4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny audit change_profile /** with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny audit change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_6.sd
new file mode 100644
index 0000000..6fc9a60
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny audit change_profile /** with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny audit change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_7.sd
new file mode 100644
index 0000000..06f8e62
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny audit change_profile /** with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ deny audit change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_da_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_8.sd
new file mode 100644
index 0000000..0e0058d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_da_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny audit change_profile /** re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ deny audit change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_do_bare_ok_1.sd
new file mode 100644
index 0000000..6ef7b02
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /**,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_do_ok_1.sd
new file mode 100644
index 0000000..59455da
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_do_ok_2.sd
new file mode 100644
index 0000000..a7fe5b0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_do_ok_3.sd
new file mode 100644
index 0000000..dc00c67
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION deny owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_do_ok_4.sd
new file mode 100644
index 0000000..f7ed92e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny owner change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_do_ok_5.sd
new file mode 100644
index 0000000..a94e0a0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION deny owner change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ deny owner change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_do_ok_6.sd
new file mode 100644
index 0000000..d52853a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile /** with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_do_ok_7.sd
new file mode 100644
index 0000000..b14ecac
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile /** to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_do_ok_8.sd
new file mode 100644
index 0000000..0e8d75e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile /** with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_1.sd
new file mode 100644
index 0000000..1d3590d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION deny owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_2.sd
new file mode 100644
index 0000000..68ef87b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION deny owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny owner change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_3.sd
new file mode 100644
index 0000000..b3c77f9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION deny owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ deny owner change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny owner change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_4.sd
new file mode 100644
index 0000000..d133b97
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION deny owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ deny owner change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_5.sd
new file mode 100644
index 0000000..26737c5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny owner change_profile /** with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny owner change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_6.sd
new file mode 100644
index 0000000..f26ff81
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny owner change_profile /** with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ deny owner change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_7.sd
new file mode 100644
index 0000000..911ab07
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION deny owner change_profile /** with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ deny owner change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_do_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_8.sd
new file mode 100644
index 0000000..528455d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_do_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny owner change_profile /** re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ deny owner change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_o_bare_ok_1.sd
new file mode 100644
index 0000000..e47c4f6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_bare_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /**,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_o_ok_1.sd
new file mode 100644
index 0000000..aacac4a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_o_ok_2.sd
new file mode 100644
index 0000000..1df3612
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_o_ok_3.sd
new file mode 100644
index 0000000..ceca599
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_o_ok_4.sd
new file mode 100644
index 0000000..f7b8a8c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ owner change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_o_ok_5.sd
new file mode 100644
index 0000000..33a59f0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION owner change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ owner change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_o_ok_6.sd
new file mode 100644
index 0000000..99fb654
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile /** with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_o_ok_7.sd
new file mode 100644
index 0000000..b974392
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile /** to a hat with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_o_ok_8.sd
new file mode 100644
index 0000000..8004170
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile /** with name space with quotes
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_1.sd
new file mode 100644
index 0000000..4f4d980
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION owner change_profile /**
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_2.sd
new file mode 100644
index 0000000..2647c21
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION owner change_profile /** to a hat
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ owner change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ owner change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ owner change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ owner change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ owner change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ owner change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ owner change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ owner change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_3.sd
new file mode 100644
index 0000000..0a45e85
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION owner change_profile /** with name space
+#=EXRESULT FAIL
+#
+/usr/bin/foo {
+ owner change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ owner change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ owner change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ owner change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ owner change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ owner change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ owner change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ owner change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ owner change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_4.sd
new file mode 100644
index 0000000..38f1eb1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION owner change_profile /** with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ owner change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ owner change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ owner change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ owner change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ owner change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ owner change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_5.sd
new file mode 100644
index 0000000..4d2b425
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION owner change_profile /** with just res
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ owner change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_6.sd
new file mode 100644
index 0000000..5516b0b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION owner change_profile /** with just res, child profile
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo {
+ owner change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ owner change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ owner change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ owner change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ owner change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ owner change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ owner change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ owner change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ owner change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_7.sd
new file mode 100644
index 0000000..53ddaf4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION owner change_profile /** with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+/usr/bin/foo {
+ owner change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ owner change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ owner change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ owner change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ owner change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ owner change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ owner change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ owner change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ owner change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ owner change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_o_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_8.sd
new file mode 100644
index 0000000..441da8d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_o_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION owner change_profile /** re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ owner change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ owner change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ owner change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ owner change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ owner change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ owner change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ owner change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ owner change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ owner change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ owner change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_ok_1.sd
new file mode 100644
index 0000000..3dbf404
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ok_1.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /** -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_ok_2.sd
new file mode 100644
index 0000000..a012a1b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ok_2.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /** -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_ok_3.sd
new file mode 100644
index 0000000..dc27e0a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ok_3.sd
@@ -0,0 +1,7 @@
+#
+#=DESCRIPTION change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /** -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_ok_4.sd
new file mode 100644
index 0000000..0bd07e4
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ok_4.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ change_profile /** -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_ok_5.sd
new file mode 100644
index 0000000..dedd6e6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ok_5.sd
@@ -0,0 +1,10 @@
+#
+#=DESCRIPTION change_profile /** with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+/usr/bin/foo {
+ change_profile /** -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_ok_6.sd
new file mode 100644
index 0000000..9129adc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ok_6.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile /** with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /** -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_ok_7.sd
new file mode 100644
index 0000000..ccb2183
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ok_7.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile /** to a hat with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /** -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_ok_8.sd
new file mode 100644
index 0000000..4171bfd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_ok_8.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile /** with name space with quotes
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /** -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxre_re_ok_1.sd
new file mode 100644
index 0000000..998ce06
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_re_ok_1.sd
@@ -0,0 +1,24 @@
+#
+#=DESCRIPTION change_profile /**
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /** -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ change_profile /** -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ change_profile /** -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ change_profile /** -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxre_re_ok_2.sd
new file mode 100644
index 0000000..ad61b67
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_re_ok_2.sd
@@ -0,0 +1,69 @@
+#
+#=DESCRIPTION change_profile /** to a hat
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /** -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ change_profile /** -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ change_profile /** -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ change_profile /** -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ change_profile /** -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ change_profile /** -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ change_profile /** -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ change_profile /** -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ change_profile /** -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ change_profile /** -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ change_profile /** -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ change_profile /** -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ change_profile /** -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ change_profile /** -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ change_profile /** -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxre_re_ok_3.sd
new file mode 100644
index 0000000..e0c30c1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_re_ok_3.sd
@@ -0,0 +1,67 @@
+#
+#=DESCRIPTION change_profile /** with name space
+#=EXRESULT PASS
+#
+/usr/bin/foo {
+ change_profile /** -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ change_profile /** -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ change_profile /** -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ change_profile /** -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ change_profile /** -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ change_profile /** -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ change_profile /** -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ change_profile /** -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ change_profile /** -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ change_profile /** -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ change_profile /** -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ change_profile /** -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ change_profile /** -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ change_profile /** -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ change_profile /** -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxre_re_ok_4.sd
new file mode 100644
index 0000000..7b99c6b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_re_ok_4.sd
@@ -0,0 +1,51 @@
+#
+#=DESCRIPTION change_profile /** with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+/usr/bin/foo {
+ change_profile /** -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ change_profile /** -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ change_profile /** -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ change_profile /** -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ change_profile /** -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ change_profile /** -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ change_profile /** -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ change_profile /** -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ change_profile /** -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ change_profile /** -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxre_re_ok_5.sd
new file mode 100644
index 0000000..dfd174a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_re_ok_5.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION change_profile /** with just res
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ change_profile /** -> *,
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> **,
+}
+
+/usr/bin/foo3 {
+ change_profile /** -> ?,
+}
+
+/usr/bin/foo4 {
+ change_profile /** -> [ab],
+}
+
+/usr/bin/foo5 {
+ change_profile /** -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxre_re_ok_6.sd
new file mode 100644
index 0000000..9fcb052
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_re_ok_6.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION change_profile /** with just res, child profile
+#=EXRESULT PASS
+#
+
+/usr/bin/foo {
+ change_profile /** -> *//ab,
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> **//ab,
+}
+
+/usr/bin/foo3 {
+ change_profile /** -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ change_profile /** -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ change_profile /** -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ change_profile /** -> ab//*,
+}
+
+/usr/bin/foo7 {
+ change_profile /** -> ab//**,
+}
+
+/usr/bin/foo8 {
+ change_profile /** -> ab//?,
+}
+
+/usr/bin/foo9 {
+ change_profile /** -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ change_profile /** -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ change_profile /** -> *//*,
+}
+
+/usr/bin/foo12 {
+ change_profile /** -> **//*,
+}
+
+/usr/bin/foo13 {
+ change_profile /** -> ?//*,
+}
+
+/usr/bin/foo14 {
+ change_profile /** -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ change_profile /** -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxre_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxre_re_ok_7.sd
new file mode 100644
index 0000000..7524e5c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_re_ok_7.sd
@@ -0,0 +1,65 @@
+#
+#=DESCRIPTION change_profile /** with just re, namespace
+#=EXRESULT PASS
+#
+
+
+/usr/bin/foo {
+ change_profile /** -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ change_profile /** -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ change_profile /** -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ change_profile /** -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ change_profile /** -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ change_profile /** -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ change_profile /** -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ change_profile /** -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ change_profile /** -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ change_profile /** -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ change_profile /** -> :*:*,
+}
+
+/usr/bin/foo12 {
+ change_profile /** -> :**:**,
+}
+
+/usr/bin/foo13 {
+ change_profile /** -> :?:?,
+}
+
+/usr/bin/foo14 {
+ change_profile /** -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ change_profile /** -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxre_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxre_re_ok_8.sd
new file mode 100644
index 0000000..ad7d1b1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxre_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION change_profile /** re with quotes
+#=EXRESULT PASS
+#
+
+/usr/bin/foo5 {
+ change_profile /** -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ change_profile /** -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ change_profile /** -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ change_profile /** -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ change_profile /** -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ change_profile /** -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ change_profile /** -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ change_profile /** -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ change_profile /** -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ change_profile /** -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_a_bare_ok_1.sd
new file mode 100644
index 0000000..ad82ece
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_bare_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var},
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_a_ok_1.sd
new file mode 100644
index 0000000..bdfb5fd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_a_ok_2.sd
new file mode 100644
index 0000000..6044b67
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_a_ok_3.sd
new file mode 100644
index 0000000..a0e5d51
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_a_ok_4.sd
new file mode 100644
index 0000000..30d1015
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_a_ok_5.sd
new file mode 100644
index 0000000..0d0448e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_a_ok_6.sd
new file mode 100644
index 0000000..8d252a5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit change_profile @{var} with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_a_ok_7.sd
new file mode 100644
index 0000000..10a3878
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit change_profile @{var} to a hat with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_a_ok_8.sd
new file mode 100644
index 0000000..34b23dd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit change_profile @{var} with name space with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_1.sd
new file mode 100644
index 0000000..6b0ed1a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_2.sd
new file mode 100644
index 0000000..029c75a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION audit change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_3.sd
new file mode 100644
index 0000000..4dbbefb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION audit change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_4.sd
new file mode 100644
index 0000000..3531560
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION audit change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_5.sd
new file mode 100644
index 0000000..2b33e1a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION audit change_profile @{var} with just res
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ audit change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_6.sd
new file mode 100644
index 0000000..3ec2ded
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit change_profile @{var} with just res, child profile
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_7.sd
new file mode 100644
index 0000000..71b3788
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit change_profile @{var} with just re, namespace
+#=EXRESULT PASS
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ audit change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_8.sd
new file mode 100644
index 0000000..592bf30
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_a_re_ok_8.sd
@@ -0,0 +1,47 @@
+#
+#=DESCRIPTION audit change_profile @{var} re with quotes
+#=EXRESULT PASS
+#
+
+@{var}=/test
+
+/usr/bin/foo5 {
+ audit change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_aa_re_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_1.sd
new file mode 100644
index 0000000..f4805e9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_2.sd
new file mode 100644
index 0000000..ebc4a88
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_3.sd
new file mode 100644
index 0000000..24ec496
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_4.sd
new file mode 100644
index 0000000..13682c2
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_5.sd
new file mode 100644
index 0000000..a9ad3f0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_6.sd
new file mode 100644
index 0000000..c575fca
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_7.sd
new file mode 100644
index 0000000..ebd0a5b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} to a hat with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_8.sd
new file mode 100644
index 0000000..130da4c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with name space with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_1.sd
new file mode 100644
index 0000000..73604e7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_2.sd
new file mode 100644
index 0000000..6907cd0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit allow owner change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_3.sd
new file mode 100644
index 0000000..730a021
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit allow owner change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_4.sd
new file mode 100644
index 0000000..ee090cf
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_5.sd
new file mode 100644
index 0000000..a1e9a89
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with just res
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_6.sd
new file mode 100644
index 0000000..d3838ad
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with just res, child profile
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_7.sd
new file mode 100644
index 0000000..043eefa
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ audit allow owner change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit allow owner change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit allow owner change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit allow owner change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit allow owner change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit allow owner change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_8.sd
new file mode 100644
index 0000000..a388f8d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_aao_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit allow owner change_profile @{var} re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit allow owner change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit allow owner change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit allow owner change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit allow owner change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit allow owner change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit allow owner change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit allow owner change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit allow owner change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit allow owner change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit allow owner change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_bare_ok_1.sd
new file mode 100644
index 0000000..66f6391
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_bare_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit deny change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var},
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_1.sd
new file mode 100644
index 0000000..b2da764
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit deny change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_2.sd
new file mode 100644
index 0000000..78028d6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_3.sd
new file mode 100644
index 0000000..60ea5ec
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_4.sd
new file mode 100644
index 0000000..2d2b3b6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_5.sd
new file mode 100644
index 0000000..faeee80
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_6.sd
new file mode 100644
index 0000000..41b670e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_7.sd
new file mode 100644
index 0000000..cfa8ce9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} to a hat with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_8.sd
new file mode 100644
index 0000000..de43c8d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with name space with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_1.sd
new file mode 100644
index 0000000..9e340ce
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit deny change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_2.sd
new file mode 100644
index 0000000..f2767fc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_3.sd
new file mode 100644
index 0000000..0fe239e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_4.sd
new file mode 100644
index 0000000..1037f01
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_5.sd
new file mode 100644
index 0000000..88dc5b5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with just res
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_6.sd
new file mode 100644
index 0000000..ab287b1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with just res, child profile
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_7.sd
new file mode 100644
index 0000000..3b8e70c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} with just re, namespace
+#=EXRESULT PASS
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit deny change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit deny change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit deny change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit deny change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_8.sd
new file mode 100644
index 0000000..6e039d0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ad_re_ok_8.sd
@@ -0,0 +1,47 @@
+#
+#=DESCRIPTION audit deny change_profile @{var} re with quotes
+#=EXRESULT PASS
+#
+
+@{var}=/test
+
+/usr/bin/foo5 {
+ audit deny change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit deny change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit deny change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit deny change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit deny change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit deny change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit deny change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit deny change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit deny change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit deny change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_bare_ok_1.sd
new file mode 100644
index 0000000..ee5b05e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_bare_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var},
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_1.sd
new file mode 100644
index 0000000..312ed41
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_2.sd
new file mode 100644
index 0000000..31c1924
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_3.sd
new file mode 100644
index 0000000..5e08185
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_4.sd
new file mode 100644
index 0000000..59475ed
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_5.sd
new file mode 100644
index 0000000..a8c2479
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_6.sd
new file mode 100644
index 0000000..e613409
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_7.sd
new file mode 100644
index 0000000..8080bab
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} to a hat with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_8.sd
new file mode 100644
index 0000000..ed6e49e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with name space with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_1.sd
new file mode 100644
index 0000000..e15ba55
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_2.sd
new file mode 100644
index 0000000..b3cb74a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny owner change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_3.sd
new file mode 100644
index 0000000..ff94854
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit deny owner change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_4.sd
new file mode 100644
index 0000000..482aced
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_5.sd
new file mode 100644
index 0000000..58478f6
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with just res
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_6.sd
new file mode 100644
index 0000000..705046d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with just res, child profile
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_7.sd
new file mode 100644
index 0000000..ff0681c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ audit deny owner change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit deny owner change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit deny owner change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit deny owner change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit deny owner change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit deny owner change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_8.sd
new file mode 100644
index 0000000..94b02d0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ado_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit deny owner change_profile @{var} re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit deny owner change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit deny owner change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit deny owner change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit deny owner change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit deny owner change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit deny owner change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit deny owner change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit deny owner change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit deny owner change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit deny owner change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_1.sd
new file mode 100644
index 0000000..5558d09
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION allow change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_2.sd
new file mode 100644
index 0000000..4d609c8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION allow change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_3.sd
new file mode 100644
index 0000000..5f08c95
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION allow change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_4.sd
new file mode 100644
index 0000000..03e6a55
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_5.sd
new file mode 100644
index 0000000..6268054
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION allow change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_6.sd
new file mode 100644
index 0000000..6834700
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION allow change_profile @{var} with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_7.sd
new file mode 100644
index 0000000..152c1e1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION allow change_profile @{var} to a hat with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_8.sd
new file mode 100644
index 0000000..d17857d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION allow change_profile @{var} with name space with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_1.sd
new file mode 100644
index 0000000..6c20308
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION allow change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_2.sd
new file mode 100644
index 0000000..0f79b51
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION allow change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ allow change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ allow change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ allow change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ allow change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ allow change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ allow change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ allow change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ allow change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ allow change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ allow change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ allow change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ allow change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_3.sd
new file mode 100644
index 0000000..c0efad1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION allow change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ allow change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ allow change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ allow change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ allow change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ allow change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ allow change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ allow change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ allow change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ allow change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ allow change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ allow change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ allow change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_4.sd
new file mode 100644
index 0000000..1b15eab
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION allow change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ allow change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ allow change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ allow change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ allow change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ allow change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ allow change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ allow change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_5.sd
new file mode 100644
index 0000000..4582068
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION allow change_profile @{var} with just res
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ allow change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_6.sd
new file mode 100644
index 0000000..a22a4d3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION allow change_profile @{var} with just res, child profile
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ allow change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ allow change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ allow change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ allow change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ allow change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ allow change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ allow change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ allow change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ allow change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ allow change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ allow change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ allow change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ allow change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_7.sd
new file mode 100644
index 0000000..9e625b3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION allow change_profile @{var} with just re, namespace
+#=EXRESULT PASS
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ allow change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ allow change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ allow change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ allow change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ allow change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ allow change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ allow change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ allow change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ allow change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ allow change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ allow change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ allow change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ allow change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ allow change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ allow change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_8.sd
new file mode 100644
index 0000000..577c6f5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_allow_re_ok_8.sd
@@ -0,0 +1,47 @@
+#
+#=DESCRIPTION allow change_profile @{var} re with quotes
+#=EXRESULT PASS
+#
+
+@{var}=/test
+
+/usr/bin/foo5 {
+ allow change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ allow change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ allow change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ allow change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ allow change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ allow change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ allow change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ allow change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ allow change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ allow change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_1.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_2.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_3.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_4.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_5.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_6.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_7.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_allowo_re_ok_8.sd
new file mode 100644
index 0000000..e69de29
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_bare_ok_1.sd
new file mode 100644
index 0000000..f99217c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_bare_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var},
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_1.sd
new file mode 100644
index 0000000..3853b2d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_2.sd
new file mode 100644
index 0000000..8987377
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_3.sd
new file mode 100644
index 0000000..5da5cf3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_4.sd
new file mode 100644
index 0000000..83f4fc5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_5.sd
new file mode 100644
index 0000000..739082f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_6.sd
new file mode 100644
index 0000000..538e603
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_7.sd
new file mode 100644
index 0000000..800280f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} to a hat with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_8.sd
new file mode 100644
index 0000000..c6233f1
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with name space with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_1.sd
new file mode 100644
index 0000000..27dc835
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION audit owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_2.sd
new file mode 100644
index 0000000..87423fc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ audit owner change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_3.sd
new file mode 100644
index 0000000..a63b8f7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ audit owner change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_4.sd
new file mode 100644
index 0000000..18e622c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_5.sd
new file mode 100644
index 0000000..79936a0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with just res
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_6.sd
new file mode 100644
index 0000000..4a2ab5f
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with just res, child profile
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_7.sd
new file mode 100644
index 0000000..4f8db87
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ audit owner change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ audit owner change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ audit owner change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ audit owner change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ audit owner change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ audit owner change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_8.sd
new file mode 100644
index 0000000..0a43ce7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ao_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION audit owner change_profile @{var} re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ audit owner change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ audit owner change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ audit owner change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ audit owner change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ audit owner change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ audit owner change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ audit owner change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ audit owner change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ audit owner change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ audit owner change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_bare_ok_1.sd
new file mode 100644
index 0000000..d510a9c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_bare_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var},
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_d_bare_ok_1.sd
new file mode 100644
index 0000000..d9fe63a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_bare_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var},
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_d_ok_1.sd
new file mode 100644
index 0000000..1dbbd25
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_d_ok_2.sd
new file mode 100644
index 0000000..89bae60
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_d_ok_3.sd
new file mode 100644
index 0000000..c1707ab
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_d_ok_4.sd
new file mode 100644
index 0000000..9f13bee
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_d_ok_5.sd
new file mode 100644
index 0000000..add3b51
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_d_ok_6.sd
new file mode 100644
index 0000000..32b7ad5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION deny change_profile @{var} with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_d_ok_7.sd
new file mode 100644
index 0000000..ff76f0e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION deny change_profile @{var} to a hat with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_d_ok_8.sd
new file mode 100644
index 0000000..1ba4854
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION deny change_profile @{var} with name space with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_1.sd
new file mode 100644
index 0000000..6bc441d
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_2.sd
new file mode 100644
index 0000000..8d2008b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION deny change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_3.sd
new file mode 100644
index 0000000..c5a0e6b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION deny change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_4.sd
new file mode 100644
index 0000000..75ebc61
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION deny change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_5.sd
new file mode 100644
index 0000000..be35cad
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION deny change_profile @{var} with just res
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ deny change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_6.sd
new file mode 100644
index 0000000..54d3f8c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION deny change_profile @{var} with just res, child profile
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_7.sd
new file mode 100644
index 0000000..29a34c8
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION deny change_profile @{var} with just re, namespace
+#=EXRESULT PASS
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ deny change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_8.sd
new file mode 100644
index 0000000..94c9192
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_d_re_ok_8.sd
@@ -0,0 +1,47 @@
+#
+#=DESCRIPTION deny change_profile @{var} re with quotes
+#=EXRESULT PASS
+#
+
+@{var}=/test
+
+/usr/bin/foo5 {
+ deny change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_da_bare_ok_1.sd
new file mode 100644
index 0000000..431d3fb
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_bare_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny audit change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var},
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_da_ok_1.sd
new file mode 100644
index 0000000..61a3b88
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny audit change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_da_ok_2.sd
new file mode 100644
index 0000000..e02f506
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_da_ok_3.sd
new file mode 100644
index 0000000..a417153
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_da_ok_4.sd
new file mode 100644
index 0000000..3c0f19a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_da_ok_5.sd
new file mode 100644
index 0000000..4938971
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_da_ok_6.sd
new file mode 100644
index 0000000..a3c9635
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_da_ok_7.sd
new file mode 100644
index 0000000..40ef522
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} to a hat with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_da_ok_8.sd
new file mode 100644
index 0000000..6cb5b05
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with name space with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_1.sd
new file mode 100644
index 0000000..d775b0b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny audit change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_2.sd
new file mode 100644
index 0000000..665ee27
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny audit change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_3.sd
new file mode 100644
index 0000000..5548f8b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny audit change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_4.sd
new file mode 100644
index 0000000..b7b8363
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_5.sd
new file mode 100644
index 0000000..1b2f7ad
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with just res
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_6.sd
new file mode 100644
index 0000000..3b8ed1e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with just res, child profile
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_7.sd
new file mode 100644
index 0000000..4372212
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ deny audit change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny audit change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny audit change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny audit change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny audit change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny audit change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_8.sd
new file mode 100644
index 0000000..0a2ccff
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_da_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny audit change_profile @{var} re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ deny audit change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny audit change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny audit change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny audit change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny audit change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny audit change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny audit change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny audit change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny audit change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny audit change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_do_bare_ok_1.sd
new file mode 100644
index 0000000..e7cedbc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_bare_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var},
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_do_ok_1.sd
new file mode 100644
index 0000000..b842c23
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_do_ok_2.sd
new file mode 100644
index 0000000..d1900b3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_do_ok_3.sd
new file mode 100644
index 0000000..e14c2e5
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_do_ok_4.sd
new file mode 100644
index 0000000..f9d6870
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_do_ok_5.sd
new file mode 100644
index 0000000..8d8f4c7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_do_ok_6.sd
new file mode 100644
index 0000000..85012c2
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_do_ok_7.sd
new file mode 100644
index 0000000..c9d85a0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} to a hat with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_do_ok_8.sd
new file mode 100644
index 0000000..e614f56
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with name space with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_1.sd
new file mode 100644
index 0000000..cd21785
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION deny owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_2.sd
new file mode 100644
index 0000000..88e6c23
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ deny owner change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_3.sd
new file mode 100644
index 0000000..dfa9e4c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ deny owner change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_4.sd
new file mode 100644
index 0000000..077fda9
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_5.sd
new file mode 100644
index 0000000..9f61692
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with just res
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_6.sd
new file mode 100644
index 0000000..c9b68ee
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with just res, child profile
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_7.sd
new file mode 100644
index 0000000..2cbbf47
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ deny owner change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ deny owner change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ deny owner change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ deny owner change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ deny owner change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ deny owner change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_8.sd
new file mode 100644
index 0000000..e8f8aa3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_do_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION deny owner change_profile @{var} re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ deny owner change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ deny owner change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ deny owner change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ deny owner change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ deny owner change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ deny owner change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ deny owner change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ deny owner change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ deny owner change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ deny owner change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_bare_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_o_bare_ok_1.sd
new file mode 100644
index 0000000..ea6875c
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_bare_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var},
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_o_ok_1.sd
new file mode 100644
index 0000000..64e94be
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_o_ok_2.sd
new file mode 100644
index 0000000..073c5c3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_o_ok_3.sd
new file mode 100644
index 0000000..6b49ab7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_o_ok_4.sd
new file mode 100644
index 0000000..723573e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_o_ok_5.sd
new file mode 100644
index 0000000..f204172
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION owner change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_o_ok_6.sd
new file mode 100644
index 0000000..cca92c0
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION owner change_profile @{var} with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_o_ok_7.sd
new file mode 100644
index 0000000..f61aa50
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION owner change_profile @{var} to a hat with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_o_ok_8.sd
new file mode 100644
index 0000000..b0f33d3
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION owner change_profile @{var} with name space with quotes
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_1.sd
new file mode 100644
index 0000000..70a887b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION owner change_profile @{var}
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_2.sd
new file mode 100644
index 0000000..a339e67
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION owner change_profile @{var} to a hat
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ owner change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ owner change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ owner change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ owner change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ owner change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ owner change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ owner change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ owner change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ owner change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ owner change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ owner change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ owner change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_3.sd
new file mode 100644
index 0000000..7544854
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION owner change_profile @{var} with name space
+#=EXRESULT FAIL
+#
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ owner change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ owner change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ owner change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ owner change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ owner change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ owner change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ owner change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ owner change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ owner change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ owner change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ owner change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ owner change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_4.sd
new file mode 100644
index 0000000..79a6017
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION owner change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT FAIL
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ owner change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ owner change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ owner change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ owner change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ owner change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ owner change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ owner change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_5.sd
new file mode 100644
index 0000000..d861429
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION owner change_profile @{var} with just res
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ owner change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_6.sd
new file mode 100644
index 0000000..6519bf7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION owner change_profile @{var} with just res, child profile
+#=EXRESULT FAIL
+#
+
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ owner change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ owner change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ owner change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ owner change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ owner change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ owner change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ owner change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ owner change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ owner change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ owner change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ owner change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ owner change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ owner change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_7.sd
new file mode 100644
index 0000000..ac7394a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION owner change_profile @{var} with just re, namespace
+#=EXRESULT FAIL
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ owner change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ owner change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ owner change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ owner change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ owner change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ owner change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ owner change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ owner change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ owner change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ owner change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ owner change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ owner change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ owner change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ owner change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ owner change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_8.sd
new file mode 100644
index 0000000..408213b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_o_re_ok_8.sd
@@ -0,0 +1,45 @@
+#
+#=DESCRIPTION owner change_profile @{var} re with quotes
+#=EXRESULT FAIL
+#
+
+/usr/bin/foo5 {
+ owner change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ owner change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ owner change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ owner change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ owner change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ owner change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ owner change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ owner change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ owner change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ owner change_profile @{var} -> "/bin/ ?ab",
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_ok_1.sd
new file mode 100644
index 0000000..87a1e94
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ok_1.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> /bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_ok_2.sd
new file mode 100644
index 0000000..d70c751
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ok_2.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> /bin/foo//bar,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_ok_3.sd
new file mode 100644
index 0000000..c4bc9af
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ok_3.sd
@@ -0,0 +1,8 @@
+#
+#=DESCRIPTION change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> :foo:/bin/foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_ok_4.sd
new file mode 100644
index 0000000..babb093
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ok_4.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> @{LIBVIRT}-foo,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_ok_5.sd
new file mode 100644
index 0000000..f984147
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ok_5.sd
@@ -0,0 +1,11 @@
+#
+#=DESCRIPTION change_profile @{var} with variable+regex (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_ok_6.sd
new file mode 100644
index 0000000..af14894
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ok_6.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION change_profile @{var} with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> "/bin/foo",
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> "/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_ok_7.sd
new file mode 100644
index 0000000..9492131
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ok_7.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION change_profile @{var} to a hat with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> "/bin/foo//bar",
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> "/bin/foo// bar",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_ok_8.sd
new file mode 100644
index 0000000..797398a
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_ok_8.sd
@@ -0,0 +1,12 @@
+#
+#=DESCRIPTION change_profile @{var} with name space with quotes
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> ":foo:/bin/foo",
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> ":foo:/bin/ foo",
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_re_ok_1.sd b/parser/tst/simple_tests/change_profile/onxvar_re_ok_1.sd
new file mode 100644
index 0000000..7c103cc
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_re_ok_1.sd
@@ -0,0 +1,25 @@
+#
+#=DESCRIPTION change_profile @{var}
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> /bin/*,
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> /bin/**,
+}
+
+/usr/bin/foo3 {
+ change_profile @{var} -> /bin/?,
+}
+
+/usr/bin/foo4 {
+ change_profile @{var} -> /bin/[ab],
+}
+
+/usr/bin/foo5 {
+ change_profile @{var} -> /bin/[^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_re_ok_2.sd b/parser/tst/simple_tests/change_profile/onxvar_re_ok_2.sd
new file mode 100644
index 0000000..09e48e7
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_re_ok_2.sd
@@ -0,0 +1,70 @@
+#
+#=DESCRIPTION change_profile @{var} to a hat
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> /bin/foo//bar,
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> /bin/foo//ba*,
+}
+
+/usr/bin/foo3 {
+ change_profile @{var} -> /bin/foo//ba**,
+}
+
+/usr/bin/foo4 {
+ change_profile @{var} -> /bin/foo//ba?,
+}
+
+/usr/bin/foo5 {
+ change_profile @{var} -> /bin/foo//ba[ab],
+}
+
+/usr/bin/foo6 {
+ change_profile @{var} -> /bin/foo//ba[^ab],
+}
+
+/usr/bin/foo7 {
+ change_profile @{var} -> /bin/fo*//bar,
+}
+
+/usr/bin/foo8 {
+ change_profile @{var} -> /bin/fo**//bar,
+}
+
+/usr/bin/foo9 {
+ change_profile @{var} -> /bin/fo?//bar,
+}
+
+/usr/bin/foo10 {
+ change_profile @{var} -> /bin/fo[ab]//bar,
+}
+
+/usr/bin/foo11 {
+ change_profile @{var} -> /bin/fo[^ab]//bar,
+}
+
+/usr/bin/foo12 {
+ change_profile @{var} -> /bin/fo*//ba*,
+}
+
+/usr/bin/foo13 {
+ change_profile @{var} -> /bin/fo**//ba**,
+}
+
+/usr/bin/foo14 {
+ change_profile @{var} -> /bin/fo?//ba?,
+}
+
+/usr/bin/foo15 {
+ change_profile @{var} -> /bin/fo[ab]//ba[ab],
+}
+
+/usr/bin/foo16 {
+ change_profile @{var} -> /bin/fo[^ab]//ba[^ab],
+}
+
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_re_ok_3.sd b/parser/tst/simple_tests/change_profile/onxvar_re_ok_3.sd
new file mode 100644
index 0000000..44e38cd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_re_ok_3.sd
@@ -0,0 +1,68 @@
+#
+#=DESCRIPTION change_profile @{var} with name space
+#=EXRESULT PASS
+#
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> :foo:/bin/foo,
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> :foo:/bin/fo*,
+}
+
+/usr/bin/foo3 {
+ change_profile @{var} -> :foo:/bin/fo**,
+}
+
+/usr/bin/foo4 {
+ change_profile @{var} -> :foo:/bin/fo?,
+}
+
+/usr/bin/foo5 {
+ change_profile @{var} -> :foo:/bin/fo[ab],
+}
+
+/usr/bin/foo6 {
+ change_profile @{var} -> :foo:/bin/fo[^ab],
+}
+
+/usr/bin/foo7 {
+ change_profile @{var} -> :fo*:/bin/foo,
+}
+
+/usr/bin/foo8 {
+ change_profile @{var} -> :fo**:/bin/foo,
+}
+
+/usr/bin/foo9 {
+ change_profile @{var} -> :fo?:/bin/foo,
+}
+
+/usr/bin/foo10 {
+ change_profile @{var} -> :fo[ab]:/bin/foo,
+}
+
+/usr/bin/foo11 {
+ change_profile @{var} -> :fo[^ab]:/bin/foo,
+}
+
+/usr/bin/foo12 {
+ change_profile @{var} -> :fo*:/bin/fo*,
+}
+
+/usr/bin/foo13 {
+ change_profile @{var} -> :fo**:/bin/fo**,
+}
+
+/usr/bin/foo14 {
+ change_profile @{var} -> :fo?:/bin/fo?,
+}
+
+/usr/bin/foo15 {
+ change_profile @{var} -> :fo[ab]:/bin/fo[ab],
+}
+
+/usr/bin/foo16 {
+ change_profile @{var} -> :fo[^ab]:/bin/fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_re_ok_4.sd b/parser/tst/simple_tests/change_profile/onxvar_re_ok_4.sd
new file mode 100644
index 0000000..99f2462
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_re_ok_4.sd
@@ -0,0 +1,52 @@
+#
+#=DESCRIPTION change_profile @{var} with a variable (LP: #390810)
+#=EXRESULT PASS
+#
+
+@{LIBVIRT}="libvirt"
+@{LIBVIRT_RE}="libvirt*"
+
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> @{LIBVIRT}-fo*,
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> @{LIBVIRT}-fo**,
+}
+
+/usr/bin/foo3 {
+ change_profile @{var} -> @{LIBVIRT}-fo[ab],
+}
+
+/usr/bin/foo4 {
+ change_profile @{var} -> @{LIBVIRT}-fo[^ab],
+}
+
+/usr/bin/foo5 {
+ change_profile @{var} -> @{LIBVIRT}-fo?,
+}
+
+/usr/bin/foo6 {
+ change_profile @{var} -> @{LIBVIRT_RE}-foo,
+}
+
+/usr/bin/foo7 {
+ change_profile @{var} -> @{LIBVIRT_RE}-fo*,
+}
+
+/usr/bin/foo8 {
+ change_profile @{var} -> @{LIBVIRT_RE}-fo**,
+}
+
+/usr/bin/foo9 {
+ change_profile @{var} -> @{LIBVIRT_RE}-fo?,
+}
+
+/usr/bin/foo10 {
+ change_profile @{var} -> @{LIBVIRT_RE}-fo[ab],
+}
+
+/usr/bin/foo11 {
+ change_profile @{var} -> @{LIBVIRT_RE}-fo[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_re_ok_5.sd b/parser/tst/simple_tests/change_profile/onxvar_re_ok_5.sd
new file mode 100644
index 0000000..40d1d5b
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_re_ok_5.sd
@@ -0,0 +1,26 @@
+#
+#=DESCRIPTION change_profile @{var} with just res
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> *,
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> **,
+}
+
+/usr/bin/foo3 {
+ change_profile @{var} -> ?,
+}
+
+/usr/bin/foo4 {
+ change_profile @{var} -> [ab],
+}
+
+/usr/bin/foo5 {
+ change_profile @{var} -> [^ab],
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_re_ok_6.sd b/parser/tst/simple_tests/change_profile/onxvar_re_ok_6.sd
new file mode 100644
index 0000000..ca4590e
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_re_ok_6.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION change_profile @{var} with just res, child profile
+#=EXRESULT PASS
+#
+
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> *//ab,
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> **//ab,
+}
+
+/usr/bin/foo3 {
+ change_profile @{var} -> ?//ab,
+}
+
+/usr/bin/foo4 {
+ change_profile @{var} -> [ab]//ab,
+}
+
+/usr/bin/foo5 {
+ change_profile @{var} -> [^ab]//ab,
+}
+
+/usr/bin/foo6 {
+ change_profile @{var} -> ab//*,
+}
+
+/usr/bin/foo7 {
+ change_profile @{var} -> ab//**,
+}
+
+/usr/bin/foo8 {
+ change_profile @{var} -> ab//?,
+}
+
+/usr/bin/foo9 {
+ change_profile @{var} -> ab//[ab],
+}
+
+/usr/bin/foo10 {
+ change_profile @{var} -> ab//[^ab],
+}
+
+/usr/bin/foo11 {
+ change_profile @{var} -> *//*,
+}
+
+/usr/bin/foo12 {
+ change_profile @{var} -> **//*,
+}
+
+/usr/bin/foo13 {
+ change_profile @{var} -> ?//*,
+}
+
+/usr/bin/foo14 {
+ change_profile @{var} -> [ab]//*,
+}
+
+/usr/bin/foo15 {
+ change_profile @{var} -> [^ab]//*,
+}
+
diff --git a/parser/tst/simple_tests/change_profile/onxvar_re_ok_7.sd b/parser/tst/simple_tests/change_profile/onxvar_re_ok_7.sd
new file mode 100644
index 0000000..7d7cdfd
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_re_ok_7.sd
@@ -0,0 +1,66 @@
+#
+#=DESCRIPTION change_profile @{var} with just re, namespace
+#=EXRESULT PASS
+#
+
+
+@{var}=/test
+/usr/bin/foo {
+ change_profile @{var} -> :ab:*,
+}
+
+/usr/bin/foo2 {
+ change_profile @{var} -> :ab:**,
+}
+
+/usr/bin/foo3 {
+ change_profile @{var} -> :ab:?,
+}
+
+/usr/bin/foo4 {
+ change_profile @{var} -> :ab:[ab],
+}
+
+/usr/bin/foo5 {
+ change_profile @{var} -> :ab:[^ab],
+}
+
+/usr/bin/foo6 {
+ change_profile @{var} -> :*:ab,
+}
+
+/usr/bin/foo7 {
+ change_profile @{var} -> :**:ab,
+}
+
+/usr/bin/foo8 {
+ change_profile @{var} -> :?:ab,
+}
+
+/usr/bin/foo9 {
+ change_profile @{var} -> :[ab]:ab,
+}
+
+/usr/bin/foo10 {
+ change_profile @{var} -> :[^ab]:ab,
+}
+
+/usr/bin/foo11 {
+ change_profile @{var} -> :*:*,
+}
+
+/usr/bin/foo12 {
+ change_profile @{var} -> :**:**,
+}
+
+/usr/bin/foo13 {
+ change_profile @{var} -> :?:?,
+}
+
+/usr/bin/foo14 {
+ change_profile @{var} -> :[ab]:[ab],
+}
+
+/usr/bin/foo15 {
+ change_profile @{var} -> :[^ab]:[^ab],
+}
diff --git a/parser/tst/simple_tests/change_profile/onxvar_re_ok_8.sd b/parser/tst/simple_tests/change_profile/onxvar_re_ok_8.sd
new file mode 100644
index 0000000..33eb727
--- /dev/null
+++ b/parser/tst/simple_tests/change_profile/onxvar_re_ok_8.sd
@@ -0,0 +1,47 @@
+#
+#=DESCRIPTION change_profile @{var} re with quotes
+#=EXRESULT PASS
+#
+
+@{var}=/test
+
+/usr/bin/foo5 {
+ change_profile @{var} -> "/bin/*",
+}
+
+/usr/bin/foo6 {
+ change_profile @{var} -> "/bin/**",
+}
+
+/usr/bin/foo7 {
+ change_profile @{var} -> "/bin/[ab]",
+}
+
+/usr/bin/foo8 {
+ change_profile @{var} -> "/bin/[^ab]",
+}
+
+/usr/bin/foo10 {
+ change_profile @{var} -> "/bin/?ab",
+}
+
+/usr/bin/foo11 {
+ change_profile @{var} -> "/bin/ *",
+}
+
+/usr/bin/foo12 {
+ change_profile @{var} -> "/bin/ **",
+}
+
+/usr/bin/foo13 {
+ change_profile @{var} -> "/bin/ [ab]",
+}
+
+/usr/bin/foo14 {
+ change_profile @{var} -> "/bin/ [^ab]",
+}
+
+/usr/bin/foo15 {
+ change_profile @{var} -> "/bin/ ?ab",
+}
+
--
2.1.4
More information about the AppArmor
mailing list