def METHOD_NAME(self):
    """
    Build binary and filter tests based on the environment
    """
    smm = SoftwareManager()
    deps = ['gcc', 'make', 'patch']
    detected_distro = distro.detect()
    skip_offline = self.params.get("skip_softoffline", default=True)
    if detected_distro.name in ["Ubuntu", 'debian']:
        deps.extend(['libpthread-stubs0-dev', 'git'])
    elif detected_distro.name == "SuSE":
        deps.extend(['glibc-devel-static', 'git-core'])
    else:
        deps.extend(['glibc-static', 'git', 'runc'])
    for package in deps:
        if not smm.check_installed(package) and not smm.install(package):
            self.cancel('%s is needed for the test to be run' % package)
    git.get_repo("https://github.com/narasimhan-v/linux-mm",
                 destination_dir=self.logdir)
    os.chdir(self.logdir)
    build.make(self.logdir)
    tst_list = process.system_output('./random -l').decode().splitlines()
    self.test_dic = {}
    for line in tst_list:
        keyval = line.split(":")
        self.test_dic[keyval[0]] = keyval[1]
    skip_numa = False
    if len(memory.numa_nodes_with_memory()) < 2:
        skip_numa = True
    rm_list = []
    for key, val in self.test_dic.items():
        if skip_numa:
            if 'NUMA' in val or 'migrate' in val:
                if key not in rm_list:
                    rm_list.append(key)
        if skip_offline:
            if 'soft offlin' in val:
                if key not in rm_list:
                    rm_list.append(key)
        if detected_distro.name == "SuSE":
            if 'runc' in val:
                if key not in rm_list:
                    rm_list.append(key)
    for item in rm_list:
        self.test_dic.pop(item)