Update OpenGL CTS Readme and verification

 - Update the OpenGL CTS Readme to clarify that
   KC CTS results are not needed for opengl-es-cts-3.2.4.0 and later.
 - Update the verification script to adjust to the new rules.

Components: OpenGL

Affects: conformance package verification

VK-GL-CTS issue: 695

Change-Id: I83ae7db6aefda0356f6db5dd5cd605fa287e01d8
diff --git a/external/openglcts/README.md b/external/openglcts/README.md
index 07b9a8f..95a9b30 100644
--- a/external/openglcts/README.md
+++ b/external/openglcts/README.md
@@ -231,8 +231,12 @@
 at [Khronos Gitlab](https://gitlab.khronos.org/) to be able to download
 Khronos Confidential CTS.
 It is possible to run and build the CTS without the Khronos Confidential CTS.
-Khronos Confidential CTS is mandatory only if you plan to make a
+For OpenGL CTS releases, and OpenGL ES CTS releases prior to opengl-es-cts-3.2.4.0
+Khronos Confidential CTS is mandatory if you plan to make a
 conformance submission (see [Creating a Submission Package](#creating-a-submission-package)).
+For opengl-es-cts-3.2.4.0 and later OpenGL ES CTS releases Khronos Confidential CTS
+results must not be included in a submission package.
+
 
 With CMake out-of-source builds are always recommended. Create a build directory
 of your choosing, and in that directory generate Makefiles or IDE project
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/gles2-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/gles2-khr-noctx-master.txt
similarity index 100%
rename from external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/gles2-khr-master.txt
rename to external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/gles2-khr-noctx-master.txt
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/gles32-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/gles32-khr-noctx-master.txt
similarity index 100%
rename from external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/gles32-khr-master.txt
rename to external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/gles32-khr-noctx-master.txt
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/mustpass.xml b/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/mustpass.xml
index 5528e4d..2d45d40 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/mustpass.xml
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/mustpass.xml
@@ -18,7 +18,7 @@
  * be lost! Modify the generating script instead.
  */-->
 	<TestPackage name="Khronos Mustpass ES NoContext">
-		<Configuration caseListFile="gles2-khr-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="khr-master" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles32-khr-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="khr-master" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles2-khr-noctx-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="khr-noctx-master" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles32-khr-noctx-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="khr-noctx-master" os="any" useForFirstEGLConfig="True"/>
 	</TestPackage>
 </Mustpass>
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/gles2-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/gles2-khr-noctx-master.txt
similarity index 100%
rename from external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/gles2-khr-master.txt
rename to external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/gles2-khr-noctx-master.txt
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/gles32-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/gles32-khr-noctx-master.txt
similarity index 100%
rename from external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/gles32-khr-master.txt
rename to external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/gles32-khr-noctx-master.txt
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/mustpass.xml b/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/mustpass.xml
index 5bc5063..008d616 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/mustpass.xml
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass_noctx/master/mustpass.xml
@@ -18,7 +18,7 @@
  * be lost! Modify the generating script instead.
  */-->
 	<TestPackage name="Khronos Mustpass ES NoContext">
-		<Configuration caseListFile="gles2-khr-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="khr-master" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles32-khr-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="khr-master" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles2-khr-noctx-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="khr-noctx-master" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles32-khr-noctx-master.txt" commandLine="--deqp-screen-rotation=unspecified --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-watchdog=disable" name="khr-noctx-master" os="any" useForFirstEGLConfig="True"/>
 	</TestPackage>
 </Mustpass>
diff --git a/external/openglcts/modules/runner/glcKhronosMustpassEsNocontext.hpp b/external/openglcts/modules/runner/glcKhronosMustpassEsNocontext.hpp
index b4130de..8c7fb2c 100644
--- a/external/openglcts/modules/runner/glcKhronosMustpassEsNocontext.hpp
+++ b/external/openglcts/modules/runner/glcKhronosMustpassEsNocontext.hpp
@@ -22,8 +22,8 @@
 const char* mustpassDir = "gl_cts/data/mustpass/gles/khronos_mustpass_noctx/3.2.4.x/";
 
 static const RunParams khronos_mustpass_es_nocontext_first_cfg[] = {
-	{ glu::ApiType::es(2, 0), "khr-master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
-	{ glu::ApiType::es(3, 2), "khr-master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
+	{ glu::ApiType::es(2, 0), "khr-noctx-master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
+	{ glu::ApiType::es(3, 2), "khr-noctx-master", DE_NULL, "unspecified", 1, DE_NULL, 64, 64 },
 };
 
 #endif // _GLCKHRONOSMUSTPASSESNOCONTEXT_HPP
diff --git a/external/openglcts/scripts/build_mustpass.py b/external/openglcts/scripts/build_mustpass.py
index 488d9de..1bc9d26 100644
--- a/external/openglcts/scripts/build_mustpass.py
+++ b/external/openglcts/scripts/build_mustpass.py
@@ -854,7 +854,7 @@
 
 GLCTS_NOCTX_ES2_KHR_PKG			= Package(module = NOCTX_ES2_KHR_MODULE, configurations = [
 		# Master
-		Configuration(name			= "khr-master",
+		Configuration(name			= "khr-noctx-master",
 					surfacewidth	= "64",
 					surfaceheight	= "64",
 					baseseed		= "1",
@@ -863,7 +863,7 @@
 
 GLCTS_NOCTX_ES32_KHR_PKG		= Package(module = NOCTX_ES32_KHR_MODULE, configurations = [
 		# Master
-		Configuration(name			= "khr-master",
+		Configuration(name			= "khr-noctx-master",
 					surfacewidth	= "64",
 					surfaceheight	= "64",
 					baseseed		= "1",
diff --git a/external/openglcts/scripts/verify/verify_es.py b/external/openglcts/scripts/verify/verify_es.py
index ef1c95a..559718a 100644
--- a/external/openglcts/scripts/verify/verify_es.py
+++ b/external/openglcts/scripts/verify/verify_es.py
@@ -4,7 +4,7 @@
 # Khronos OpenGL CTS
 # ------------------
 #
-# Copyright (c) 2016 The Khronos Group Inc.
+# Copyright (c) 2017 The Khronos Group Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -73,6 +73,14 @@
 
 	return messages
 
+def numGitLogStatusFile (releaseTag):
+	KC_CTS_RELEASE = ["opengl-es-cts-3\.2\.[2-3]\.[0-9]*", "opengl-cts-4\.6\.[0-9]*\.[0-9]*"]
+	for r in KC_CTS_RELEASE:
+		if re.match(r, releaseTag):
+			return 2
+
+	return 1
+
 def verifyConfigFile (filename, type):
 	messages  = []
 	caseNames = getConfigCaseName(type)
@@ -214,8 +222,11 @@
 def verifyGitStatusFiles (package):
 	messages = []
 
-	if len(package.gitStatus) != 2:
-		messages.append(error(package.basePath, "Exactly two git status files must be present, found %s" % len(package.gitStatus)))
+	errorDict = {1 : 'one git status file', 2 : 'two git status files'}
+	numFiles = numGitLogStatusFile(package.conformVersion)
+
+	if len(package.gitStatus) != numFiles:
+		messages.append(error(package.basePath, "Exactly %s must be present, found %s" % (errorDict[numFiles], len(package.gitStatus))))
 
 	messages += verifyGitStatus(package)
 
@@ -268,11 +279,14 @@
 def verifyGitLogFiles (package):
 	messages = []
 
-	if len(package.gitLog) != 2:
-		messages.append(error(package.basePath, "Exactly two git log file must be present, found %s" % len(package.gitLog)))
+	errorDict = {1 : 'one git log file', 2 : 'two git log files'}
+	numFiles = numGitLogStatusFile(package.conformVersion)
+
+	if len(package.gitLog) != numFiles:
+		messages.append(error(package.basePath, "Exactly %s must be present, found %s" % (errorDict[numFiles], len(package.gitLog))))
 
 	for i, gitLog in enumerate(package.gitLog):
-		if "kc-cts" in gitLog[0]:
+		if "kc-cts" in gitLog[0] and numFiles > 1:
 			package.gitLog[i] = gitLog[:1] + ("external/kc-cts/src",) + gitLog[2:]
 
 	messages += verifyGitLogFile(package)