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:"))
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:"))
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)
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:"))
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:"))
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 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:"))
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:" ))
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.")
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
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 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")
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')
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")
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.")
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
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)