manual_alter_comp.py 3.9 KB
Newer Older
B
bryanchang0603 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
###################################################################
#           Copyright (c) 2016 by TAOS Technologies, Inc.
#                     All rights reserved.
#
#  This file is proprietary and confidential to TAOS Technologies.
#  No part of this file may be reproduced, stored, transmitted,
#  disclosed or used in any form or by any means other than as
#  expressly provided by the written permission from Jianhui Tao
#
###################################################################

# -*- coding: utf-8 -*-

import sys
from util.log import *
from util.cases import *
from util.sql import *
from util.dnodes import tdDnodes

##TODO: auto test version is currently unsupported, need to come up with 
#       an auto test version in the future
class TDTestCase:
    def init(self, conn, logSql):
        tdLog.debug("start to execute %s" % __file__)
        tdSql.init(conn.cursor(), logSql)

    def getRootPath(self):
        selfPath = os.path.dirname(os.path.realpath(__file__))
        print(selfPath)
        if ("community" in selfPath):
            projPath = selfPath[:selfPath.find("community")]
            print(projPath)
        else:
            projPath = selfPath[:selfPath.find("tests")]
            print("test" + projPath)

        for root, dirs, files in os.walk(projPath):
            if ('data' in dirs and 'sim' in root):
                rootPath = root

        return rootPath
        
    def getBuildPath(self):
        selfPath = os.path.dirname(os.path.realpath(__file__))

        if ("community" in selfPath):
            projPath = selfPath[:selfPath.find("community")]
        else:
            projPath = selfPath[:selfPath.find("tests")]

        for root, dirs, files in os.walk(projPath):
            if ("taosd" in files):
                rootRealPath = os.path.dirname(os.path.realpath(root))
                if ("packaging" not in rootRealPath):
                    buildPath = root[:len(root)-len("/build/bin")]
                    break
        return buildPath
        
        

    def run(self):
        dnodePath = self.getRootPath()
        os.system(f'rm -rf {dnodePath}/data/* {dnodePath}/log/*')
        tdSql.prepare()
        buildPath = self.getBuildPath()
        if (buildPath == ""):
            tdLog.exit("taosd not found!")
        else:
            tdLog.info("taosd found in %s" % buildPath)
        binPath = buildPath+ "/build/bin/"  

        #comp is at 14
        tdSql.query('show databases')
        tdSql.checkData(0,14,2)
        os.system("%staosdemo -f tools/taosdemoAllTest/manual_block1_comp.json" % binPath)
        tdDnodes.stop(1)
        print("default location is at /home/bryan/Documents/Github/TDengine/sim/dnode1/data/vnode")
        input("please check disk usage for taosd. After checking, press enter")

        os.system(f'sudo rm -rf {dnodePath}/data/* {dnodePath}/log/*')
        #print(f'rm -rf {dnodePath}/data/* {dnodePath}/log/*') #for showing the command ran
        input("please check if the pervious data is being deleted. Then, press enter")
        tdDnodes.start(1)
        tdSql.prepare()
        tdSql.query('show databases')
        tdSql.checkData(0,14,2)
        tdSql.execute('alter database db comp 0')
        tdSql.query('show databases')
        tdSql.checkData(0,14,0)
        tdDnodes.stop(1)
        tdDnodes.start(1)
        os.system("%staosdemo -f tools/taosdemoAllTest/manual_block1_comp.json" % binPath)
        print("default location is at /home/bryan/Documents/Github/TDengine/sim/dnode1/data")
        input("please check disk usage for taosd. After checking, press enter")

        ##test result
        #   2021/06/02 comp=2: file size = 6.4M   comp=0 file size=399M. Test past
        #       each row entered is identical       Tester - Baosheng Chang

    def stop(self):
        tdSql.close()
        tdLog.debug("%s alter block manual check finish" % __file__)


tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())