コード例 #1
0
 def setUpClass(cls):
     with cls._lock:
         if cls._instances == 0:
             import tempfile
             cls._tmpdir = tempfile.mkdtemp()
         setenv("devtree_path", cls._tmpdir)
         cls._instances += 1
コード例 #2
0
 def setUpClass(cls):
     from MDSplus import setenv
     with cls.lock:
         if cls.instances == 0:
             import tempfile
             cls.tmpdir = tempfile.mkdtemp()
         setenv("%s_path" % cls.tree, cls.tmpdir)
         cls.instances += 1
コード例 #3
0
    def write(self):
        count = 100

        def thread(test, name, node, count):
            i = -1
            max_period = 0
            last = start = time.time()
            for i in range(count):
                data = Float32([i * 10 + 1])
                dim = Float32([last])
                node.makeSegment(dim[0], dim[0], data, dim)
                end = time.time()
                max_period = max(end - last, max_period)
                last = end
            i += 1
            test.assertEqual(i, count)
            print("%s: rate=%f, max_period=%f" % (name, i /
                                                  (end - start), max_period))

        server, server_port = self._setup_mdsip('ACTION_SERVER', 'ACTION_PORT',
                                                7020 + self.index, True)
        tempdir = tempfile.mkdtemp()
        try:
            svr, svr_log = self._start_mdsip(server, server_port, 'tcp')
            try:
                con = Connection(server)

                def check(line, *args):
                    sts = con.get(line, *args)
                    self.assertTrue(sts & 1, "error %d in '%s'" % (sts, line))

                check("setenv('test_path='//$)", tempdir)
                for line in (
                        "TreeOpenNew('test', 1)",
                        "TreeAddNode('EV1', _, 6)",
                        "TreeAddNode('EV2', _, 6)",
                        "TreeWrite()",
                        "TreeClose()",
                ):
                    check(line)
                setenv("test_path", "%s::%s" % (server, tempdir))
                tree = Tree("test", 1)
                _common.TestThread.assertRun(
                    100,
                    _common.TestThread('EV1', thread, self, 'EV1',
                                       tree.EV1.copy(), count),
                    _common.TestThread('EV2', thread, self, 'EV2',
                                       tree.EV2.copy(), count),
                )
            finally:
                if svr_log:
                    svr_log.close()
                self._stop_mdsip((svr, server))
        finally:
            shutil.rmtree(tempdir, ignore_errors=False, onerror=None)
コード例 #4
0
    def thick(self):
        def testnci(thick, local, con, nci):
            l = local.S.__getattribute__(nci)
            t = thick.S.__getattribute__(nci)
            if nci.endswith("_nids"):
                l, t = str(l), str(t)
                try:
                    c = str(con.get("getnci(getnci(S,$),'nid_number')", nci))
                except TreeNNF:
                    c = '[]'
            else:
                c = con.get("getnci(S,$)", nci)
            try:
                self.assertEqual(t, c)
                self.assertEqual(t, l)
            except:
                print(nci, t, l, c)
                raise

        server, server_port = self._setup_mdsip('ACTION_SERVER', 'ACTION_PORT',
                                                7000 + self.index, True)

        svr, svr_log = self._start_mdsip(server, server_port, 'thick')
        try:
            con = Connection(server)
            self.assertEqual(
                con.get("zero([1,1,1,1,1,1,1,1],1)").tolist(),
                [[[[[[[[0]]]]]]]])
            with Tree(self.tree, -1, "new") as local:
                local.addNode(self.treesub, "SUBTREE")
                s = local.addNode("S", "SIGNAL")
                s.addTag("tagS")
                s.record = ADD(Float32(1), Float32(2))
                t = local.addNode("T", "TEXT")
                t.addNode("TT", "TEXT").addTag("tagTT")
                t.record = t.TT
                t.TT = "recTT"
                local.write()
            with Tree(self.treesub, -1, "new") as sub:
                sub.addNode("OK")
                sub.write()
            local.normal()
            Tree.setCurrent(self.tree, 7)
            setenv("%s_path" % self.tree, "%s::" % server)
            print(con.get("getenv($//'_path')", self.tree))
            con.get("TreeShr->TreeOpen(ref($),val($),val(1))", self.tree, -1)
            thick = Tree(self.tree, -1)
            thick.createPulse(1)
            thick1 = Tree(self.tree, 1)
            self.assertEqual(
                getattr(local, self.treesub.upper()).OK.nid,
                getattr(thick1, self.treesub.upper()).OK.nid)
            local_filename = local.getFileName()
            thick_filename = thick.getFileName()
            self.assertTrue("::" in thick_filename, thick_filename)
            self.assertTrue(local_filename, thick_filename.split("::", 1)[1])
            """ TreeTurnOff / TreeTurnOn """
            thick.S.on = False
            self.assertEqual(local.S.on, False)
            thick.S.on = True
            self.assertEqual(local.S.on, True)
            """ TreeSetCurrentShotId / TreeGetCurrentShotId """
            Tree.setCurrent(self.tree, 1)
            self.assertEqual(Tree.getCurrent(self.tree), 1)
            """ TreeGetRecord / TreeSetRecord """
            self.assertEqual(str(local.S.record), "1. + 2.")
            self.assertEqual(str(thick.S.record), "1. + 2.")
            thick.S.record = ADD(Float32(2), Float32(4))
            self.assertEqual(str(local.S.record), "2. + 4.")
            self.assertEqual(str(thick.S.record), "2. + 4.")
            self.assertEqual(str(local.T.record), str(thick.T.record))
            """ GetDefaultNid / SetDefaultNid """
            self.assertEqual(thick.getDefault(), thick.top)
            thick.setDefault(thick.S)
            self.assertEqual(thick.getDefault(), thick.top.S)
            thick.setDefault(thick.top)
            """ FindNodeWildRemote """
            self.assertEqual(str(thick.getNodeWild("T*")),
                             str(local.getNodeWild("T*")))
            """ FindTagWildRemote """
            self.assertEqual(thick.findTags("*"), local.findTags("*"))
            """ nci """
            thick.S.write_once = True
            self.assertEqual(thick.S.write_once, True)
            for nci in (
                    'on',
                    'depth',
                    'usage_str',
                    'dtype',
                    'length',
                    'rlength',
                    'fullpath',
                    'minpath',
                    'member_nids',
                    'children_nids',
                    'rfa',
                    'write_once',
            ):
                testnci(thick, local, con, nci)
            """ new stuff """
            self.assertEqual(local.getFileName(),
                             con.get("treefilename($,-1)", self.tree))
        finally:
            if svr_log:
                svr_log.close()
            self._stop_mdsip((svr, server))
コード例 #5
0
ファイル: _UnitTest.py プロジェクト: tfredian/mdsplus
 def _setenv(cls,name,value):
     value = str(value)
     cls.env[name]  = value
     cls.envx[name] = value
     setenv(name,value)