diff --git a/.gitignore b/.gitignore
index 7990b61978..b98b675309 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,252 +1,250 @@
 # Common
 \#*
 .\#*
 GPATH
 GRTAGS
 GTAGS
 TAGS
 Makefile
 Makefile.in
 .deps
 .dirstamp
 .libs
 *.pc
 *.pyc
 *.bz2
 *.tar.gz
 *.tgz
 *.la
 *.lo
 *.o
 *~
 *.gcda
 *.gcno
 
 
 # Autobuild
 aclocal.m4
 autoconf
 autoheader
 autom4te.cache/
 automake
 build.counter
 compile
 /confdefs.h
 config.guess
 config.log
 config.status
 config.sub
 configure
 /conftest*
 depcomp
 install-sh
 include/stamp-*
 libtool
 libtool.m4
 ltdl.m4
 libltdl
 ltmain.sh
 missing
 py-compile
 /m4/argz.m4
 /m4/ltargz.m4
 /m4/ltoptions.m4
 /m4/ltsugar.m4
 /m4/ltversion.m4
 /m4/lt~obsolete.m4
 test-driver
 ylwrap
 
 # Configure targets
 /cts/CTS.py
 /cts/CTSlab.py
 /cts/CTSvars.py
 /cts/LSBDummy
 /cts/OCFIPraTest.py
 /cts/benchmark/clubench
 /cts/cluster_test
 /cts/cts
 /cts/cts-cli
 /cts/cts-coverage
 /cts/cts-exec
 /cts/cts-fencing
 /cts/cts-log-watcher
 /cts/cts-regression
 /cts/cts-scheduler
 /cts/cts-support
 /cts/fence_dummy
 /cts/lxc_autogen.sh
 /cts/pacemaker-cts-dummyd
 /cts/pacemaker-cts-dummyd@.service
 /daemons/execd/pacemaker_remote
 /daemons/execd/pacemaker_remote.service
 /daemons/fenced/fence_legacy
 /daemons/pacemakerd/pacemaker
 /daemons/pacemakerd/pacemaker.combined.upstart
 /daemons/pacemakerd/pacemaker.service
 /daemons/pacemakerd/pacemaker.upstart
 /doc/Doxyfile
 /extra/logrotate/pacemaker
 /extra/resources/ClusterMon
 /extra/resources/HealthSMART
 /extra/resources/SysInfo
 /extra/resources/ifspeed
 /extra/resources/o2cb
 include/config.h
 include/config.h.in
 include/crm_config.h
 publican.cfg
 /tools/cibsecret
 /tools/crm_error
 /tools/crm_failcount
 /tools/crm_master
 /tools/crm_mon.service
 /tools/crm_mon.upstart
 /tools/crm_report
 /tools/crm_rule
 /tools/crm_standby
 /tools/pcmk_simtimes
 /tools/report.collector
 /tools/report.common
 
 # Build targets
 *.7
 *.7.xml
 *.7.html
 *.8
 *.8.xml
 *.8.html
 /daemons/attrd/pacemaker-attrd
 /daemons/based/pacemaker-based
 /daemons/based/cibmon
 /daemons/controld/pacemaker-controld
 /daemons/execd/cts-exec-helper
 /daemons/execd/pacemaker-execd
 /daemons/execd/pacemaker-remoted
 /daemons/fenced/cts-fence-helper
 /daemons/fenced/pacemaker-fenced
 /daemons/fenced/pacemaker-fenced.xml
 /daemons/pacemakerd/pacemakerd
 /daemons/schedulerd/pacemaker-schedulerd
 /daemons/schedulerd/pacemaker-schedulerd.xml
 /doc/*/tmp/**
 /doc/*/publish
 /doc/*.build
 /doc/*/en-US/Ap-*.xml
 /doc/*/en-US/Ch-*.xml
 /doc/.ABI-build
 /doc/HTML
 /doc/abi_dumps
 /doc/abi-check
 /doc/api/*
 /doc/compat_reports
 /doc/crm_fencing.html
 /doc/publican-catalog*
 /doc/shared/en-US/*.xml
 /doc/shared/en-US/images/pcmk-*.png
 /doc/shared/en-US/images/Policy-Engine-*.png
 /doc/sphinx/*/_build
 /doc/sphinx/*/conf.py
 /lib/common/md5.c
 /maint/testcc_helper.cc
 /maint/testcc_*_h
 /maint/mocked/based
 scratch
 /tools/attrd_updater
 /tools/cibadmin
 /tools/crmadmin
 /tools/crm_attribute
 /tools/crm_diff
 /tools/crm_mon
 /tools/crm_node
 /tools/crm_resource
 /tools/crm_shadow
 /tools/crm_simulate
 /tools/crm_ticket
 /tools/crm_verify
 /tools/iso8601
 /tools/stonith_admin
 xml/crm.dtd
 xml/pacemaker*.rng
 xml/versions.rng
 xml/api/api-result*.rng
 lib/gnu/libgnu.a
 lib/gnu/stdalign.h
 *.coverity
 
 # Packager artifacts
 *.rpm
 /mock
 /pacemaker.spec
 /rpm/[A-Z]*
 
 # make dist/export working directory
 pacemaker-[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]
 
 # Test detritus
 /cts/.regression.failed.diff
 /cts/scheduler/*.ref
 /cts/scheduler/*.up
 /cts/scheduler/*.up.err
 /cts/scheduler/bug-rh-1097457.log
 /cts/scheduler/bug-rh-1097457.trs
 /cts/scheduler/shadow.*
 /cts/test-suite.log
+/lib/*/tests/*/*.log
+/lib/*/tests/*/*_test
+/lib/*/tests/*/*.trs
 /xml/test-*/*.up
 /xml/test-*/*.up.err
 /xml/assets/*.rng
 /xml/assets/diffview.js
 /xml/assets/xmlcatalog
 
-# Test results
-*.log
-*.trs
-/lib/common/tests/flags/pcmk__clear_flags_as
-/lib/common/tests/flags/pcmk__set_flags_as
-/lib/common/tests/flags/pcmk_all_flags_set
-/lib/common/tests/flags/pcmk_any_flags_set
-/lib/common/tests/operations/parse_op_key
-/lib/common/tests/strings/pcmk__add_word
-/lib/common/tests/strings/pcmk__btoa
-/lib/common/tests/strings/pcmk__parse_ll_range
-/lib/common/tests/strings/pcmk__scan_double
-/lib/common/tests/strings/pcmk__str_any_of
-/lib/common/tests/strings/pcmk__strcmp
-/lib/common/tests/strings/pcmk__char_in_any_str
-/lib/common/tests/utils/pcmk_str_is_infinity
-/lib/common/tests/utils/pcmk_str_is_minus_infinity
-/lib/pengine/tests/rules/pe_cron_range_satisfied
-
 # Release maintenance detritus
 /maint/gnulib
 
 # Formerly built files (helps when jumping back and forth in checkout)
 /.ABI-build
 /Doxyfile
 /HTML
 /abi_dumps
 /abi-check
 /compat_reports
 /attrd
 /cib
 /coverage.sh
 /crmd
 /cts/HBDummy
 /doc/Clusters_from_Scratch.txt
 /doc/Pacemaker_Explained.txt
 /doc/acls.html
 /fencing
+/lib/common/tests/flags/pcmk__clear_flags_as
+/lib/common/tests/flags/pcmk__set_flags_as
+/lib/common/tests/flags/pcmk_all_flags_set
+/lib/common/tests/flags/pcmk_any_flags_set
+/lib/common/tests/operations/parse_op_key
+/lib/common/tests/strings/pcmk__btoa
+/lib/common/tests/strings/pcmk__parse_ll_range
+/lib/common/tests/strings/pcmk__scan_double
+/lib/common/tests/strings/pcmk__str_any_of
+/lib/common/tests/strings/pcmk__strcmp
+/lib/common/tests/strings/pcmk__char_in_any_str
+/lib/common/tests/utils/pcmk_str_is_infinity
+/lib/common/tests/utils/pcmk_str_is_minus_infinity
+/lib/pengine/tests/rules/pe_cron_range_satisfied
 /lrmd
 /mcp
 /pacemaker-*.spec
 /pengine
 
 #Other 
 coverity-*
 logs
 *.patch
 *.diff
 *.sed
 *.orig
 *.rej
 *.swp
diff --git a/lib/common/tests/flags/Makefile.am b/lib/common/tests/flags/Makefile.am
index ec29c70b16..086d4e26fa 100644
--- a/lib/common/tests/flags/Makefile.am
+++ b/lib/common/tests/flags/Makefile.am
@@ -1,30 +1,32 @@
 #
 # Copyright 2020 the Pacemaker project contributors
 #
 # The version control history for this file may have further details.
 #
 # This source code is licensed under the GNU General Public License version 2
 # or later (GPLv2+) WITHOUT ANY WARRANTY.
 #
 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
 LDADD = $(top_builddir)/lib/common/libcrmcommon.la
 
 include $(top_srcdir)/mk/glib-tap.mk
 
 # Add each test program here.  Each test should be written as a little standalone
 # program using the glib unit testing functions.  See the documentation for more
 # information.
 #
 # https://developer.gnome.org/glib/unstable/glib-Testing.html
-test_programs = pcmk__clear_flags_as		\
-		pcmk__set_flags_as		\
-		pcmk_all_flags_set		\
-		pcmk_any_flags_set
+#
+# Add "_test" to the end of all test program names to simplify .gitignore.
+test_programs = pcmk__clear_flags_as_test	\
+		pcmk__set_flags_as_test		\
+		pcmk_all_flags_set_test		\
+		pcmk_any_flags_set_test
 
 # If any extra data needs to be added to the source distribution, add it to the
 # following list.
 dist_test_data =
 
 # If any extra data needs to be used by tests but should not be added to the
 # source distribution, add it to the following list.
 test_data =
diff --git a/lib/common/tests/flags/pcmk__clear_flags_as.c b/lib/common/tests/flags/pcmk__clear_flags_as_test.c
similarity index 100%
rename from lib/common/tests/flags/pcmk__clear_flags_as.c
rename to lib/common/tests/flags/pcmk__clear_flags_as_test.c
diff --git a/lib/common/tests/flags/pcmk__set_flags_as.c b/lib/common/tests/flags/pcmk__set_flags_as_test.c
similarity index 100%
rename from lib/common/tests/flags/pcmk__set_flags_as.c
rename to lib/common/tests/flags/pcmk__set_flags_as_test.c
diff --git a/lib/common/tests/flags/pcmk_all_flags_set.c b/lib/common/tests/flags/pcmk_all_flags_set_test.c
similarity index 100%
rename from lib/common/tests/flags/pcmk_all_flags_set.c
rename to lib/common/tests/flags/pcmk_all_flags_set_test.c
diff --git a/lib/common/tests/flags/pcmk_any_flags_set.c b/lib/common/tests/flags/pcmk_any_flags_set_test.c
similarity index 100%
rename from lib/common/tests/flags/pcmk_any_flags_set.c
rename to lib/common/tests/flags/pcmk_any_flags_set_test.c
diff --git a/lib/common/tests/operations/Makefile.am b/lib/common/tests/operations/Makefile.am
index 6e7444b88f..cd5884b2bd 100644
--- a/lib/common/tests/operations/Makefile.am
+++ b/lib/common/tests/operations/Makefile.am
@@ -1,19 +1,29 @@
+#
+# Copyright 2020 the Pacemaker project contributors
+#
+# The version control history for this file may have further details.
+#
+# This source code is licensed under the GNU General Public License version 2
+# or later (GPLv2+) WITHOUT ANY WARRANTY.
+#
 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
 LDADD = $(top_builddir)/lib/common/libcrmcommon.la
 
 include $(top_srcdir)/mk/glib-tap.mk
 
 # Add each test program here.  Each test should be written as a little standalone
 # program using the glib unit testing functions.  See the documentation for more
 # information.
 #
 # https://developer.gnome.org/glib/unstable/glib-Testing.html
-test_programs = parse_op_key
+#
+# Add "_test" to the end of all test program names to simplify .gitignore.
+test_programs = parse_op_key_test
 
 # If any extra data needs to be added to the source distribution, add it to the
 # following list.
 dist_test_data =
 
 # If any extra data needs to be used by tests but should not be added to the
 # source distribution, add it to the following list.
 test_data =
diff --git a/lib/common/tests/operations/parse_op_key.c b/lib/common/tests/operations/parse_op_key_test.c
similarity index 100%
rename from lib/common/tests/operations/parse_op_key.c
rename to lib/common/tests/operations/parse_op_key_test.c
diff --git a/lib/common/tests/strings/Makefile.am b/lib/common/tests/strings/Makefile.am
index 54875311cc..1967c3dc46 100644
--- a/lib/common/tests/strings/Makefile.am
+++ b/lib/common/tests/strings/Makefile.am
@@ -1,34 +1,36 @@
 #
 # Copyright 2020 the Pacemaker project contributors
 #
 # The version control history for this file may have further details.
 #
 # This source code is licensed under the GNU General Public License version 2
 # or later (GPLv2+) WITHOUT ANY WARRANTY.
 #
 
 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
 LDADD = $(top_builddir)/lib/common/libcrmcommon.la
 
 include $(top_srcdir)/mk/glib-tap.mk
 
 # Add each test program here.  Each test should be written as a little standalone
 # program using the glib unit testing functions.  See the documentation for more
 # information.
 #
 # https://developer.gnome.org/glib/unstable/glib-Testing.html
-test_programs =	pcmk__add_word			\
-		pcmk__btoa			\
-		pcmk__parse_ll_range		\
-		pcmk__scan_double		\
-				pcmk__str_any_of \
-				pcmk__strcmp \
-				pcmk__char_in_any_str
+#
+# Add "_test" to the end of all test program names to simplify .gitignore.
+test_programs =	pcmk__add_word_test		\
+		pcmk__btoa_test			\
+		pcmk__char_in_any_str_test	\
+		pcmk__parse_ll_range_test	\
+		pcmk__scan_double_test		\
+		pcmk__str_any_of_test		\
+		pcmk__strcmp_test
 
 # If any extra data needs to be added to the source distribution, add it to the
 # following list.
 dist_test_data =
 
 # If any extra data needs to be used by tests but should not be added to the
 # source distribution, add it to the following list.
 test_data =
diff --git a/lib/common/tests/strings/pcmk__add_word.c b/lib/common/tests/strings/pcmk__add_word_test.c
similarity index 100%
rename from lib/common/tests/strings/pcmk__add_word.c
rename to lib/common/tests/strings/pcmk__add_word_test.c
diff --git a/lib/common/tests/strings/pcmk__btoa.c b/lib/common/tests/strings/pcmk__btoa_test.c
similarity index 100%
rename from lib/common/tests/strings/pcmk__btoa.c
rename to lib/common/tests/strings/pcmk__btoa_test.c
diff --git a/lib/common/tests/strings/pcmk__char_in_any_str.c b/lib/common/tests/strings/pcmk__char_in_any_str_test.c
similarity index 100%
rename from lib/common/tests/strings/pcmk__char_in_any_str.c
rename to lib/common/tests/strings/pcmk__char_in_any_str_test.c
diff --git a/lib/common/tests/strings/pcmk__parse_ll_range.c b/lib/common/tests/strings/pcmk__parse_ll_range_test.c
similarity index 100%
rename from lib/common/tests/strings/pcmk__parse_ll_range.c
rename to lib/common/tests/strings/pcmk__parse_ll_range_test.c
diff --git a/lib/common/tests/strings/pcmk__scan_double.c b/lib/common/tests/strings/pcmk__scan_double_test.c
similarity index 100%
rename from lib/common/tests/strings/pcmk__scan_double.c
rename to lib/common/tests/strings/pcmk__scan_double_test.c
diff --git a/lib/common/tests/strings/pcmk__str_any_of.c b/lib/common/tests/strings/pcmk__str_any_of_test.c
similarity index 100%
rename from lib/common/tests/strings/pcmk__str_any_of.c
rename to lib/common/tests/strings/pcmk__str_any_of_test.c
diff --git a/lib/common/tests/strings/pcmk__strcmp.c b/lib/common/tests/strings/pcmk__strcmp_test.c
similarity index 100%
rename from lib/common/tests/strings/pcmk__strcmp.c
rename to lib/common/tests/strings/pcmk__strcmp_test.c
diff --git a/lib/common/tests/utils/Makefile.am b/lib/common/tests/utils/Makefile.am
index 039e7ba06e..ae30b77303 100644
--- a/lib/common/tests/utils/Makefile.am
+++ b/lib/common/tests/utils/Makefile.am
@@ -1,20 +1,30 @@
+#
+# Copyright 2020 the Pacemaker project contributors
+#
+# The version control history for this file may have further details.
+#
+# This source code is licensed under the GNU General Public License version 2
+# or later (GPLv2+) WITHOUT ANY WARRANTY.
+#
 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
 LDADD = $(top_builddir)/lib/common/libcrmcommon.la
 
 include $(top_srcdir)/mk/glib-tap.mk
 
 # Add each test program here.  Each test should be written as a little standalone
 # program using the glib unit testing functions.  See the documentation for more
 # information.
 #
 # https://developer.gnome.org/glib/unstable/glib-Testing.html
-test_programs = pcmk_str_is_infinity \
-				pcmk_str_is_minus_infinity
+#
+# Add "_test" to the end of all test program names to simplify .gitignore.
+test_programs =	pcmk_str_is_infinity_test		\
+		pcmk_str_is_minus_infinity_test
 
 # If any extra data needs to be added to the source distribution, add it to the
 # following list.
 dist_test_data =
 
 # If any extra data needs to be used by tests but should not be added to the
 # source distribution, add it to the following list.
 test_data =
diff --git a/lib/common/tests/utils/pcmk_str_is_infinity.c b/lib/common/tests/utils/pcmk_str_is_infinity_test.c
similarity index 100%
rename from lib/common/tests/utils/pcmk_str_is_infinity.c
rename to lib/common/tests/utils/pcmk_str_is_infinity_test.c
diff --git a/lib/common/tests/utils/pcmk_str_is_minus_infinity.c b/lib/common/tests/utils/pcmk_str_is_minus_infinity_test.c
similarity index 100%
rename from lib/common/tests/utils/pcmk_str_is_minus_infinity.c
rename to lib/common/tests/utils/pcmk_str_is_minus_infinity_test.c
diff --git a/lib/pengine/tests/rules/Makefile.am b/lib/pengine/tests/rules/Makefile.am
index 74776e3dd6..9195f8dad1 100644
--- a/lib/pengine/tests/rules/Makefile.am
+++ b/lib/pengine/tests/rules/Makefile.am
@@ -1,20 +1,30 @@
+#
+# Copyright 2020 the Pacemaker project contributors
+#
+# The version control history for this file may have further details.
+#
+# This source code is licensed under the GNU General Public License version 2
+# or later (GPLv2+) WITHOUT ANY WARRANTY.
+#
 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
 LDADD = $(top_builddir)/lib/common/libcrmcommon.la \
 		$(top_builddir)/lib/pengine/libpe_rules.la
 
 include $(top_srcdir)/mk/glib-tap.mk
 
 # Add each test program here.  Each test should be written as a little standalone
 # program using the glib unit testing functions.  See the documentation for more
 # information.
 #
 # https://developer.gnome.org/glib/unstable/glib-Testing.html
-test_programs = pe_cron_range_satisfied
+#
+# Add "_test" to the end of all test program names to simplify .gitignore.
+test_programs = pe_cron_range_satisfied_test
 
 # If any extra data needs to be added to the source distribution, add it to the
 # following list.
 dist_test_data =
 
 # If any extra data needs to be used by tests but should not be added to the
 # source distribution, add it to the following list.
 test_data =
diff --git a/lib/pengine/tests/rules/pe_cron_range_satisfied.c b/lib/pengine/tests/rules/pe_cron_range_satisfied_test.c
similarity index 100%
rename from lib/pengine/tests/rules/pe_cron_range_satisfied.c
rename to lib/pengine/tests/rules/pe_cron_range_satisfied_test.c