Example #1
0
    def _set_defaults(self, program):
        topdir = os.path.abspath(samba.source_tree_topdir())
        try:
            defaults = set(get_documented_tuples(topdir))
        except:
            self.fail("Unable to load parameters")
        bindir = os.path.join(topdir, "bin")
        failset = set()
        count = 0

        for tuples in defaults:
            param, default, context, param_type = tuples

            if param in ['printing']:
                continue

            section = None
            if context == "G":
                section = "global"
            elif context == "S":
                section = "test"
            else:
                 self.fail("%s has no valid context" % param)
            p = subprocess.Popen(program + ["-s", self.smbconf,
                    "--section-name", section, "--parameter-name", param,
                    "--option", "%s = %s" % (param, default)],
                    stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=topdir).communicate()
            if p[0].upper().strip() != default.upper():
                if not (p[0].upper().strip() == "" and default == '""'):
                    doc_triple = "%s\n      Expected: %s" % (param, default)
                    failset.add("%s\n      Got: %s" % (doc_triple, p[0].upper().strip()))

        if len(failset) > 0:
            self.fail(self._format_message(failset,
                "Parameters that do not have matching defaults:"))
Example #2
0
    def _test_default(self, program):
        topdir = os.path.abspath(samba.source_tree_topdir())
        try:
            defaults = set(get_default_triples(topdir))
        except:
            self.fail("Unable to load parameters")
        bindir = os.path.join(topdir, "bin")
        failset = set()
        count = 0

        for triple in defaults:
            param, default, context = triple
            if param in self.special_cases:
                continue
            section = None
            if context == "G":
                section = "global"
            elif context == "S":
                section = "test"
            else:
                 self.fail("%s has no valid context" % param)
            p = subprocess.Popen(program + ["-s", self.smbconf,
                    "--section-name", section, "--parameter-name", param],
                    stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=topdir).communicate()
            if p[0].upper().strip() != default.upper():
                if not (p[0].upper().strip() == "" and default == '""'):
                    doc_triple = "%s\n      Expected: %s" % (param, default)
                    failset.add("%s\n      Got: %s" % (doc_triple, p[0].upper().strip()))

        if len(failset) > 0:
            self.fail(self._format_message(failset,
                "Parameters that do not have matching defaults:"))
Example #3
0
 def _set_arbitrary(self, program, exceptions=None):
     arbitrary = {'string': 'string', 'boolean': 'yes', 'integer': '5',
                  'enum':'', 'boolean-auto': '', 'char': 'a', 'list': 'a, b, c'}
     opposite_arbitrary = {'string': 'string2', 'boolean': 'no', 'integer': '6',
                           'enum':'', 'boolean-auto': '', 'char': 'b', 'list': 'd, e, f'}
     topdir = os.path.abspath(samba.source_tree_topdir())
     try:
         defaults = set(get_documented_tuples(topdir, False))
     except Exception,e:
         self.fail("Unable to load parameters" + e)
Example #4
0
 def test_undocumented(self):
     topdir = os.path.abspath(samba.source_tree_topdir())
     try:
         documented = set(get_documented_parameters(topdir))
     except:
         self.fail("Unable to load parameters")
     parameters = set(get_implementation_parameters(topdir))
     undocumented = parameters.difference(documented)
     if len(undocumented) > 0:
         self.fail(self._format_message(undocumented,
             "Parameters that are in the implementation but undocumented:"))
Example #5
0
 def test_undocumented(self):
     topdir = samba.source_tree_topdir()
     try:
         documented = set(get_documented_parameters(topdir))
     except NoXsltProc:
         raise TestSkipped("'xsltproc' is missing, unable to load parameters")
     parameters = set(get_implementation_parameters(topdir))
     undocumented = parameters.difference(documented)
     if len(undocumented) > 0:
         self.fail(self._format_message(undocumented,
             "Parameters that are in the implementation but undocumented:"))
Example #6
0
 def test_undocumented(self):
     topdir = os.path.abspath(samba.source_tree_topdir())
     try:
         documented = set(get_documented_parameters(topdir))
     except:
         self.fail("Unable to load parameters")
     parameters = set(get_implementation_parameters(topdir))
     undocumented = parameters.difference(documented)
     if len(undocumented) > 0:
         self.fail(self._format_message(undocumented,
             "Parameters that are in the implementation but undocumented:"))
Example #7
0
 def test_unknown(self):
     topdir = samba.source_tree_topdir()
     try:
         documented = set(get_documented_parameters(topdir))
     except NoXsltProc:
         raise TestSkipped("'xsltproc' is missing, unable to load parameters")
     parameters = set(get_implementation_parameters(topdir))
     # Filter out parametric options, since we can't find them in the parm
     # table
     documented = set([p for p in documented if not ":" in p])
     unknown = documented.difference(parameters)
     if len(unknown) > 0:
         self.fail(self._format_message(unknown,
             "Parameters that are documented but not in the implementation:"))
Example #8
0
 def test_unknown(self):
     topdir = os.path.abspath(samba.source_tree_topdir())
     try:
         documented = set(get_documented_parameters(topdir))
     except e:
         self.fail("Unable to load parameters")
     parameters = set(get_implementation_parameters(topdir))
     # Filter out parametric options, since we can't find them in the parm
     # table
     documented = set([p for p in documented if not ":" in p])
     unknown = documented.difference(parameters)
     if len(unknown) > 0:
         self.fail(self._format_message(unknown,
             "Parameters that are documented but not in the implementation:"))
Example #9
0
 def test_unknown(self):
     topdir = os.path.abspath(samba.source_tree_topdir())
     try:
         documented = set(get_documented_parameters(topdir))
     except e:
         self.fail("Unable to load parameters")
     parameters = set(get_implementation_parameters(topdir))
     # Filter out parametric options, since we can't find them in the parm
     # table
     documented = set([p for p in documented if not ":" in p])
     unknown = documented.difference(parameters)
     if len(unknown) > 0:
         self.fail(self._format_message(unknown,
             "Parameters that are documented but not in the implementation:"))
Example #10
0
 def test_undocumented(self):
     topdir = samba.source_tree_topdir()
     try:
         documented = set(get_documented_parameters(topdir))
     except NoXsltProc:
         raise TestSkipped(
             "'xsltproc' is missing, unable to load parameters")
     parameters = set(get_implementation_parameters(topdir))
     undocumented = parameters.difference(documented)
     if len(undocumented) > 0:
         self.fail(
             self._format_message(
                 undocumented,
                 "Parameters that are in the implementation but undocumented:"
             ))
Example #11
0
    def _test_empty(self, program):
        topdir = os.path.abspath(samba.source_tree_topdir())

        p = subprocess.Popen(program + ["-s", self.blankconf, "--suppress-prompt"],
                stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=topdir).communicate()
        output = ""

        for line in p[0].splitlines():
            if line.strip().startswith('#'):
                continue
            if line.strip().startswith("idmap config *"):
                continue
            output += line.strip().lower() + '\n'

        if output.strip() != '[global]' and output.strip() != '[globals]':
            self.fail("Testparm returned unexpected output on an empty smb.conf.")
Example #12
0
 def start_toy_server(self, host, port, id):
     python = sys.executable
     p = subprocess.Popen([python,
                           os.path.join(samba.source_tree_topdir(),
                                        'python/samba/tests/'
                                        'dns_forwarder_helpers/server.py'),
                          host, str(port), id])
     self.subprocesses.append(p)
     s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
     for i in xrange(30):
         time.sleep(0.01)
         s.connect((host, port))
         try:
             s.send('timeout 0', 0)
         except socket.error, e:
             if e.errno in (errno.ECONNREFUSED, errno.EHOSTUNREACH):
                 continue
         return s
Example #13
0
 def test_unknown(self):
     topdir = samba.source_tree_topdir()
     try:
         documented = set(get_documented_parameters(topdir))
     except NoXsltProc:
         raise TestSkipped(
             "'xsltproc' is missing, unable to load parameters")
     parameters = set(get_implementation_parameters(topdir))
     # Filter out parametric options, since we can't find them in the parm
     # table
     documented = set([p for p in documented if not ":" in p])
     unknown = documented.difference(parameters)
     if len(unknown) > 0:
         self.fail(
             self._format_message(
                 unknown,
                 "Parameters that are documented but not in the implementation:"
             ))
 def start_toy_server(self, host, port, id):
     python = sys.executable
     p = subprocess.Popen([python,
                           os.path.join(samba.source_tree_topdir(),
                                        'python/samba/tests/'
                                        'dns_forwarder_helpers/server.py'),
                          host, str(port), id])
     self.subprocesses.append(p)
     s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
     for i in xrange(30):
         time.sleep(0.01)
         s.connect((host, port))
         try:
             s.send('timeout 0', 0)
         except socket.error, e:
             if e.errno in (errno.ECONNREFUSED, errno.EHOSTUNREACH):
                 continue
         return s
Example #15
0
    def setUp(self):
        super(SmbDotConfTests, self).setUp()
        # create a minimal smb.conf file for testparm
        self.smbconf = os.path.join(self.tempdir, "paramtestsmb.conf")
        f = open(self.smbconf, "w")
        try:
            f.write(
                """
[test]
   path = /
"""
            )
        finally:
            f.close()

        self.blankconf = os.path.join(self.tempdir, "emptytestsmb.conf")
        f = open(self.blankconf, "w")
        try:
            f.write("")
        finally:
            f.close()

        self.topdir = os.path.abspath(samba.source_tree_topdir())

        try:
            self.documented = set(get_documented_parameters(self.topdir))
        except:
            self.fail("Unable to load documented parameters")

        try:
            self.table_gen = set(get_param_table_full(self.topdir, "bin/default/lib/param/param_table_gen.c"))
        except:
            self.fail("Unable to load generated parameter table")

        try:
            self.defaults = set(get_documented_tuples(self.topdir))
        except:
            self.fail("Unable to load parameters")

        try:
            self.defaults_all = set(get_documented_tuples(self.topdir, False))
        except:
            self.fail("Unable to load parameters")
Example #16
0
    def setUp(self):
        """set up a temporary GPO to work with"""
        super(GpoCmdTestCase, self).setUp()
        (result, out, err) = self.runsubcmd("gpo", "create", self.gpo_name,
                                            "-H", "ldap://%s" % os.environ["SERVER"],
                                            "-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"]),
                                            "--tmpdir", self.tempdir)
        self.assertCmdSuccess(result, out, err, "Ensuring gpo created successfully")
        shutil.rmtree(os.path.join(self.tempdir, "policy"))
        try:
            self.gpo_guid = "{%s}" % out.split("{")[1].split("}")[0]
        except IndexError:
            self.fail("Failed to find GUID in output: %s" % out)

        self.backup_path = os.path.join(samba.source_tree_topdir(), 'source4',
                                        'selftest', 'provisions',
                                        'generalized-gpo-backup')

        self.entity_file = os.path.join(self.backup_path, 'entities')
Example #17
0
    def setUp(self):
        super(SmbDotConfTests, self).setUp()
        # create a minimal smb.conf file for testparm
        self.smbconf = os.path.join(self.tempdir, "paramtestsmb.conf")
        f = open(self.smbconf, 'w')
        try:
            f.write("""
[test]
   path = /
""")
        finally:
            f.close()

        self.blankconf = os.path.join(self.tempdir, "emptytestsmb.conf")
        f = open(self.blankconf, 'w')
        try:
            f.write("")
        finally:
            f.close()

        self.topdir = os.path.abspath(samba.source_tree_topdir())

        try:
            self.documented = set(get_documented_parameters(self.topdir))
        except:
            self.fail("Unable to load documented parameters")

        try:
            self.table_gen = set(get_param_table_full(self.topdir,
                                 "bin/default/lib/param/param_table_gen.c"))
        except:
            self.fail("Unable to load generated parameter table")

        try:
            self.defaults = set(get_documented_tuples(self.topdir))
        except:
            self.fail("Unable to load parameters")

        try:
            self.defaults_all = set(get_documented_tuples(self.topdir, False))
        except:
            self.fail("Unable to load parameters")
Example #18
0
    def _test_empty(self, program):
        topdir = os.path.abspath(samba.source_tree_topdir())

        p = subprocess.Popen(program +
                             ["-s", self.blankconf, "--suppress-prompt"],
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE,
                             cwd=topdir).communicate()
        output = ""

        for line in p[0].splitlines():
            if line.strip().startswith('#'):
                continue
            if line.strip().startswith("idmap config *"):
                continue
            output += line.strip().lower() + '\n'

        if output.strip() != '[global]' and output.strip() != '[globals]':
            self.fail(
                "Testparm returned unexpected output on an empty smb.conf.")
Example #19
0
    def start_toy_server(self, host, port, id):
        python = sys.executable
        p = subprocess.Popen([
            python,
            os.path.join(
                samba.source_tree_topdir(), 'python/samba/tests/'
                'dns_forwarder_helpers/server.py'), host,
            str(port), id
        ])
        self.subprocesses.append(p)
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
        for i in range(300):
            time.sleep(0.05)
            s.connect((host, port))
            try:
                s.send(b'timeout 0', 0)
            except socket.error as e:
                if e.errno in (errno.ECONNREFUSED, errno.EHOSTUNREACH):
                    continue

            if p.returncode is not None:
                self.fail("Toy server has managed to die already!")

            return s
Example #20
0
 def _set_arbitrary(self, program, exceptions=None):
     arbitrary = {
         'string': 'string',
         'boolean': 'yes',
         'integer': '5',
         'enum': '',
         'boolean-auto': '',
         'char': 'a',
         'list': 'a, b, c'
     }
     opposite_arbitrary = {
         'string': 'string2',
         'boolean': 'no',
         'integer': '6',
         'enum': '',
         'boolean-auto': '',
         'char': 'b',
         'list': 'd, e, f'
     }
     topdir = os.path.abspath(samba.source_tree_topdir())
     try:
         defaults = set(get_documented_tuples(topdir, False))
     except Exception, e:
         self.fail("Unable to load parameters" + e)