def METHOD_NAME(self):
    """Custom built-in test procedure for TINKER."""
    if self.cfg['runtest']:
        # copy tests, params and built binaries to temporary directory for testing
        tmpdir = tempfile.mkdtemp()
        testdir = os.path.join(tmpdir, 'test')
        mkdir(os.path.join(tmpdir, 'bin'))
        binaries = glob.glob(os.path.join(self.cfg['start_dir'], 'source', '*.x'))
        for binary in binaries:
            copy_file(binary, os.path.join(tmpdir, 'bin', os.path.basename(binary)[:-2]))
        copy_dir(os.path.join(self.cfg['start_dir'], 'test'), testdir)
        copy_dir(os.path.join(self.cfg['start_dir'], 'params'), os.path.join(tmpdir, 'params'))
        change_dir(testdir)
        # run all tests via the provided 'run' scripts
        tests = glob.glob(os.path.join(testdir, '*.run'))
        # gpcr takes too long (~1h)
        skip_tests = ['gpcr']
        if (LooseVersion(self.version) < LooseVersion('8.7.2')):
            # ifabp fails due to input issues (?)
            skip_tests.append('ifabp')
        if (LooseVersion(self.version) >= LooseVersion('8.7.2')):
            # salt and dialinine takes too long
            skip_tests.extend(['salt', 'dialanine'])
        tests = [t for t in tests if not any([t.endswith('%s.run' % x) for x in skip_tests])]
        for test in tests:
            run_cmd(test)