diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index 91e6b74dbda3b7314ff0c38a3141f7d467cfd593..75a708de9c37bfcdd4bdc0de5205906c1706901b 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -1733,6 +1733,16 @@ def build(self, spec, prefix):
     def install(self, spec, prefix):
         inspect.getmodule(self).make('install')
 
+    @PackageBase.sanity_check('build')
+    @PackageBase.on_package_attributes(run_tests=True)
+    def _run_default_function(self):
+        try:
+            fn = getattr(self, 'check')
+            tty.msg('Trying default sanity checks [check]')
+            fn()
+        except AttributeError:
+            tty.msg('Skipping default sanity checks [method `check` not implemented]')  # NOQA: ignore=E501
+
     # This will be used as a registration decorator in user
     # packages, if need be
     PackageBase.sanity_check('install')(PackageBase.sanity_check_prefix)
@@ -1792,6 +1802,16 @@ def install(self, spec, prefix):
         with working_dir(self.wdir()):
             inspect.getmodule(self).make('install')
 
+    @PackageBase.sanity_check('build')
+    @PackageBase.on_package_attributes(run_tests=True)
+    def _run_default_function(self):
+        try:
+            fn = getattr(self, 'check')
+            tty.msg('Trying default sanity checks [check]')
+            fn()
+        except AttributeError:
+            tty.msg('Skipping default sanity checks [method `check` not implemented]')  # NOQA: ignore=E501
+
     PackageBase.sanity_check('install')(PackageBase.sanity_check_prefix)
 
 
diff --git a/var/spack/repos/builtin/packages/autoconf/package.py b/var/spack/repos/builtin/packages/autoconf/package.py
index 5eb7f3347b797019cd5c2b4bbe203cdc078adafd..b6aba8c03f61dfe0b6a431680edde523565edbac 100644
--- a/var/spack/repos/builtin/packages/autoconf/package.py
+++ b/var/spack/repos/builtin/packages/autoconf/package.py
@@ -25,10 +25,8 @@
 from spack import *
 
 
-class Autoconf(Package):
-    """
-    Autoconf -- system configuration part of autotools
-    """
+class Autoconf(AutotoolsPackage):
+    """Autoconf -- system configuration part of autotools"""
     homepage = 'https://www.gnu.org/software/autoconf/'
     url = 'http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz'
 
@@ -54,8 +52,3 @@ def setup_dependent_package(self, module, dependent_spec):
                        'ifnames']
         for name in executables:
             setattr(module, name, self._make_executable(name))
-
-    def install(self, spec, prefix):
-        configure("--prefix=%s" % prefix)
-        make()
-        make("install")
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index 6b18aa4ab8de0aba4501d8040e2e8a343bd6586d..c92ed284bbab4b56dd0d8ac12aad96a490e1c7e6 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -143,9 +143,7 @@ def configure_args(self):
 
         return ["--with-zlib=%s" % spec['zlib'].prefix] + extra_args
 
-    @AutotoolsPackage.sanity_check('install')
-    @AutotoolsPackage.on_package_attributes(run_tests=True)
-    def check_install(self):
+    def check(self):
         "Build and run a small program to test the installed HDF5 library"
         spec = self.spec
         print("Checking HDF5 installation...")
diff --git a/var/spack/repos/builtin/packages/lzo/package.py b/var/spack/repos/builtin/packages/lzo/package.py
index dc8f316a72123246b6d63593ed655310d2da455b..05229b6a621662084ed75c8aad53a233ccabce5b 100644
--- a/var/spack/repos/builtin/packages/lzo/package.py
+++ b/var/spack/repos/builtin/packages/lzo/package.py
@@ -43,8 +43,6 @@ def configure_args(self):
             '--enable-shared'
         ]
 
-    @AutotoolsPackage.sanity_check('build')
-    @AutotoolsPackage.on_package_attributes(run_tests=True)
     def check(self):
         make('check')
         make('test')
diff --git a/var/spack/repos/builtin/packages/qhull/package.py b/var/spack/repos/builtin/packages/qhull/package.py
index e221bf15527b8dccb225de60bd96ed8deecd524a..3816b377eb3d1f759b2736c7de666191b0fdd998 100644
--- a/var/spack/repos/builtin/packages/qhull/package.py
+++ b/var/spack/repos/builtin/packages/qhull/package.py
@@ -45,7 +45,5 @@ class Qhull(CMakePackage):
 
     depends_on('cmake@2.6:', type='build')
 
-    @CMakePackage.sanity_check('build')
-    @CMakePackage.on_package_attributes(run_tests=True)
     def check(self):
         make('test')