Fix run.py test detection issues for debug VS configurations
This commit is contained in:
		@@ -48,22 +48,25 @@ class TestSuite(object):
 | 
			
		||||
        return sorted(self.getAliases(fname), key = len)[0]
 | 
			
		||||
 | 
			
		||||
    def getAliases(self, fname):
 | 
			
		||||
        def getCuts(fname, prefix):
 | 
			
		||||
            # filename w/o extension (opencv_test_core)
 | 
			
		||||
            noext = re.sub(r"\.(exe|apk)$", '', fname)
 | 
			
		||||
            # filename w/o prefix (core.exe)
 | 
			
		||||
            nopref = fname
 | 
			
		||||
            if fname.startswith(prefix):
 | 
			
		||||
                nopref = fname[len(prefix):]
 | 
			
		||||
            # filename w/o prefix and extension (core)
 | 
			
		||||
            noprefext = noext
 | 
			
		||||
            if noext.startswith(prefix):
 | 
			
		||||
                noprefext = noext[len(prefix):]
 | 
			
		||||
            return noext, nopref, noprefext
 | 
			
		||||
        # input is full path ('/home/.../bin/opencv_test_core') or 'java'
 | 
			
		||||
        res = [fname]
 | 
			
		||||
        fname = os.path.basename(fname)
 | 
			
		||||
        res.append(fname) # filename (opencv_test_core.exe)
 | 
			
		||||
        noext = re.sub(r"\.(exe|apk)$", '', fname)
 | 
			
		||||
        res.append(noext) # filename w/o extension (opencv_test_core)
 | 
			
		||||
        nopref = None
 | 
			
		||||
        if fname.startswith(self.nameprefix):
 | 
			
		||||
            nopref = fname[len(self.nameprefix):]
 | 
			
		||||
            res.append(nopref) # filename w/o prefix (core)
 | 
			
		||||
        if noext.startswith(self.nameprefix):
 | 
			
		||||
            res.append(noext[len(self.nameprefix):])
 | 
			
		||||
        if self.options.configuration == "Debug":
 | 
			
		||||
            res.append(re.sub(r"d$", '', noext))  # MSVC debug config, remove 'd' suffix
 | 
			
		||||
            if nopref:
 | 
			
		||||
                res.append(re.sub(r"d$", '', nopref))  # MSVC debug config, remove 'd' suffix
 | 
			
		||||
        for s in getCuts(fname, self.nameprefix):
 | 
			
		||||
            res.append(s)
 | 
			
		||||
            res.append(re.sub(r"d$", '', s)) # MSVC debug config, remove 'd' suffix
 | 
			
		||||
        return set(res)
 | 
			
		||||
 | 
			
		||||
    def getTest(self, name):
 | 
			
		||||
 
 | 
			
		||||
@@ -152,7 +152,7 @@ parse_patterns = (
 | 
			
		||||
    {'name': "opencv_home",              'default': None,       'pattern': re.compile(r"^OpenCV_SOURCE_DIR:STATIC=(.+)$")},
 | 
			
		||||
    {'name': "opencv_build",             'default': None,       'pattern': re.compile(r"^OpenCV_BINARY_DIR:STATIC=(.+)$")},
 | 
			
		||||
    {'name': "tests_dir",                'default': None,       'pattern': re.compile(r"^EXECUTABLE_OUTPUT_PATH:PATH=(.+)$")},
 | 
			
		||||
    {'name': "build_type",               'default': "Release",  'pattern': re.compile(r"^CMAKE_BUILD_TYPE:STRING=(.*)$")},
 | 
			
		||||
    {'name': "build_type",               'default': "Release",  'pattern': re.compile(r"^CMAKE_BUILD_TYPE:\w+=(.*)$")},
 | 
			
		||||
    {'name': "git_executable",           'default': None,       'pattern': re.compile(r"^GIT_EXECUTABLE:FILEPATH=(.*)$")},
 | 
			
		||||
    {'name': "cxx_flags",                'default': "",         'pattern': re.compile(r"^CMAKE_CXX_FLAGS:STRING=(.*)$")},
 | 
			
		||||
    {'name': "cxx_flags_debug",          'default': "",         'pattern': re.compile(r"^CMAKE_CXX_FLAGS_DEBUG:STRING=(.*)$")},
 | 
			
		||||
@@ -214,7 +214,7 @@ class CMakeCache:
 | 
			
		||||
        # fix VS test binary path (add Debug or Release)
 | 
			
		||||
        if "Visual Studio" in self.cmake_generator:
 | 
			
		||||
            if cfg:
 | 
			
		||||
                self.tests_dir = os.path.join(self.tests_dir, self.options.configuration)
 | 
			
		||||
                self.tests_dir = os.path.join(self.tests_dir, cfg)
 | 
			
		||||
            else:
 | 
			
		||||
                self.tests_dir = os.path.join(self.tests_dir, self.build_type)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user