diff --git a/client/cros/cups.py b/client/cros/cups.py
new file mode 100644
index 0000000..d7cf0c9
--- /dev/null
+++ b/client/cros/cups.py
@@ -0,0 +1,32 @@
+# Copyright 2017 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+from autotest_lib.client.common_lib import error
+from autotest_lib.client.common_lib import utils as sys_utils
+from autotest_lib.client.cros import upstart
+"""Provides utility methods for CUPS."""
+
+
+def has_cups_upstart():
+  """Returns True if cups is installed under upstart."""
+  return upstart.has_service('cupsd')
+
+
+def has_cups_systemd():
+  """Returns True if cups is running under systemd.
+
+  Attempts to start cups if it is not already running.
+  """
+  return sys_utils.has_systemd() and (
+      (sys_utils.get_service_pid('cups') != 0) or
+      (sys_utils.start_service('cups', ignore_status=True) == 0))
+
+
+def has_cups_or_die():
+  """Checks if the cups dameon is installed.  Raises TestNAError if it is not.
+
+  TestNA skips the test.
+  """
+  if not (has_cups_upstart() or has_cups_systemd()):
+    raise error.TestNAError('No cupsd service found')
diff --git a/client/site_tests/platform_CUPSDaemon/platform_CUPSDaemon.py b/client/site_tests/platform_CUPSDaemon/platform_CUPSDaemon.py
index 61f996f..842771c 100644
--- a/client/site_tests/platform_CUPSDaemon/platform_CUPSDaemon.py
+++ b/client/site_tests/platform_CUPSDaemon/platform_CUPSDaemon.py
@@ -8,6 +8,7 @@
 from autotest_lib.client.bin import test, utils
 from autotest_lib.client.common_lib import error
 from autotest_lib.client.common_lib import utils as sys_utils
+from autotest_lib.client.cros import cups
 from autotest_lib.client.cros import upstart
 
 
@@ -55,9 +56,6 @@
         Run some sanity tests for cupsd and the upstart-socket-bridge
         socket-activation.
         """
-        if not upstart.has_service('cupsd'):
-            raise error.TestNAError('No cupsd service found')
-
         upstart.ensure_running('upstart-socket-bridge')
 
         if not self.wait_for_path_exists(self._CUPS_SOCK_PATH):
@@ -92,12 +90,6 @@
         """
         Check if cupsd is running and responsive.
         """
-        # Check to see if the service is running.
-        if sys_utils.get_service_pid('cups') == 0:
-            # Try to start it.
-            if sys_utils.start_service('cups', ignore_status=True) != 0:
-                raise error.TestNAError('No cupsd service found')
-
         sys_utils.stop_service('cups', ignore_status=False)
         sys_utils.start_service('cups.socket', ignore_status=False)
 
@@ -125,6 +117,9 @@
         """
         Run some sanity tests for cupsd.
         """
+        # Check if CUPS is installed for this system or raise TestNA.
+        cups.has_cups_or_die()
+
         if sys_utils.has_systemd():
             self.run_systemd_tests()
         else:
diff --git a/client/site_tests/platform_DebugDaemonCupsAddPrinters/platform_DebugDaemonCupsAddPrinters.py b/client/site_tests/platform_DebugDaemonCupsAddPrinters/platform_DebugDaemonCupsAddPrinters.py
index b70f24b..af5b434 100644
--- a/client/site_tests/platform_DebugDaemonCupsAddPrinters/platform_DebugDaemonCupsAddPrinters.py
+++ b/client/site_tests/platform_DebugDaemonCupsAddPrinters/platform_DebugDaemonCupsAddPrinters.py
@@ -6,6 +6,7 @@
 
 from autotest_lib.client.bin import test
 from autotest_lib.client.common_lib import error
+from autotest_lib.client.cros import cups
 from autotest_lib.client.cros import debugd_util
 
 _GENERIC_PPD = 'GenericPostScript.ppd.gz'
@@ -128,6 +129,9 @@
         @raises TestError: If an unrecognized situation was used.
 
         """
+        # Exits test if platform does not have CUPS
+        cups.has_cups_or_die()
+
         if situation == 'valid_config':
             self.test_valid_config()
         elif situation == 'lpadmin':
