def METHOD_NAME(self):
    """
    Build 'ndctl' and setup the binary.
    """
    if "powerpc" not in cpu.get_cpu_arch():
        self.cancel("Test supported only on POWER arch")
    deps = []
    self.dist = distro.detect()
    self.package = self.params.get('package', default='distro')
    if self.dist.name not in ['SuSE', 'rhel']:
        self.cancel('Unsupported OS %s' % self.dist.name)
    self.smm = SoftwareManager()
    if self.package == 'upstream':
        deps.extend(['gcc', 'make', 'automake', 'autoconf'])
        if self.dist.name == 'SuSE':
            deps.extend(['libtool',
                         'libkmod-devel', 'libudev-devel', 'systemd-devel',
                         'libuuid-devel-static', 'libjson-c-devel',
                         'keyutils-devel', 'kmod-bash-completion'])
        elif self.dist.name == 'rhel':
            deps.extend(['libtool',
                         'kmod-devel', 'libuuid-devel', 'json-c-devel',
                         'systemd-devel', 'keyutils-libs-devel', 'jq',
                         'parted', 'libtool'])
        for pkg in deps:
            if not self.smm.check_installed(pkg) and not \
                    self.smm.install(pkg):
                self.cancel('%s is needed for the test to be run' % pkg)
        locations = ["https://github.com/pmem/ndctl/archive/master.zip"]
        tarball = self.fetch_asset("ndctl.zip", locations=locations,
                                   expire='7d')
        archive.extract(tarball, self.teststmpdir)
        os.chdir("%s/ndctl-master" % self.teststmpdir)
        process.run('./autogen.sh', sudo=True, shell=True)
        process.run("./configure CFLAGS='-g -O2' --prefix=/usr "
                    "--disable-docs "
                    "--sysconfdir=/etc --libdir="
                    "/usr/lib64", shell=True, sudo=True)
        build.make(".")
        self.ndctl = os.path.abspath('./ndctl/ndctl')
        self.daxctl = os.path.abspath('./daxctl/daxctl')
    else:
        deps.extend(['ndctl'])
        if self.dist.name == 'rhel':
            deps.extend(['daxctl'])
        for pkg in deps:
            if not self.smm.check_installed(pkg) and not \
                    self.smm.install(pkg):
                self.cancel('%s is needed for the test to be run' % pkg)
        self.ndctl = 'ndctl'
        self.daxctl = 'daxctl'
    self.plib = pmem.PMem(self.ndctl, self.daxctl)
    if not self.plib.check_buses():
        self.cancel("Test needs atleast one region")