提交 b297893d 编写于 作者: W wangshi

"add vulkan cases commit texture and ubo testcases for vulkan"

Signed-off-by: Nwangshi <wangshi@kaihong.com>
上级 e507af2a
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0001TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0001TS::startTime;
time_t ActsUbo0001TS::endTime;
FuncRunResult ActsUbo0001TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO0001_TESTCASE_H
#define UBO0001_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0001TS)
#endif // UBO0001_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0002TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0002TS::startTime;
time_t ActsUbo0002TS::endTime;
FuncRunResult ActsUbo0002TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0002TS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0003TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0003TS::startTime;
time_t ActsUbo0003TS::endTime;
FuncRunResult ActsUbo0003TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0003TS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0004TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0004TS::startTime;
time_t ActsUbo0004TS::endTime;
FuncRunResult ActsUbo0004TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0004TS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0005TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0005TS::startTime;
time_t ActsUbo0005TS::endTime;
FuncRunResult ActsUbo0005TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0005TS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0006TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0006TS::startTime;
time_t ActsUbo0006TS::endTime;
FuncRunResult ActsUbo0006TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0006TS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0007TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0007TS::startTime;
time_t ActsUbo0007TS::endTime;
FuncRunResult ActsUbo0007TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0007TS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0008TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0008TS::startTime;
time_t ActsUbo0008TS::endTime;
FuncRunResult ActsUbo0008TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0008TS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0009TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0009TS::startTime;
time_t ActsUbo0009TS::endTime;
FuncRunResult ActsUbo0009TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0009TS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUbo0010TestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUbo0010TS::startTime;
time_t ActsUbo0010TS::endTime;
FuncRunResult ActsUbo0010TS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUbo0010TS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <climits>
#include <gtest/gtest.h>
#include <ctime>
#include "UboBaseFunc.h"
#include "ActsUboTestSuite.h"
namespace OHOS {
using namespace std;
using namespace testing::ext;
time_t ActsUboTS::startTime;
time_t ActsUboTS::endTime;
FuncRunResult ActsUboTS::runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_TESTCASE_H
#define UBO_TESTCASE_H
#include "UboBaseFunc.h"
#include "testsuitehead.h"
SHRINK_SUITETEST_HEAD(ActsUboTS)
#endif // UBO_TESTCASE_H
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <cstdio>
#include <iostream>
#include "tcuDefs.hpp"
#include "tcuCommandLine.hpp"
#include "tcuPlatform.hpp"
// #include "ActsApp.h"
#include "tcuApp.hpp"
#include "tcuResource.hpp"
#include "tcuTestLog.hpp"
#include "tcuTestSessionExecutor.hpp"
#include "deUniquePtr.hpp"
#include "tcuOhosPlatform.hpp"
#include "external/vulkancts/modules/vulkan/vktTestPackage.hpp"
#include "logdefine.h"
#include "UboBaseFunc.h"
static tcu::TestPackage* createTestPackage (tcu::TestContext& testCtx)
{
return new vkt::TestPackage(testCtx);
}
static tcu::TestPackage* createExperimentalTestPackage (tcu::TestContext& testCtx)
{
return new vkt::ExperimentalTestPackage(testCtx);
}
// tcu::TestPackageDescriptor g_vktPackageDescriptor("dEQP-VK", createTestPackage);
// tcu::TestPackageDescriptor g_vktExperimentalPackageDescriptor("dEQP-VK-experimental", createExperimentalTestPackage);
void RegistPackage(void)
{
tcu::TestPackageRegistry *registry = tcu::TestPackageRegistry::getSingleton();
registry->registerPackage("dEQP-VK", createTestPackage);
registry->registerPackage("dEQP-VK-experimental", createExperimentalTestPackage);
}
// extern tcu::TestLog tcutestlog;
FuncRunResult RunTestKHRGLES(int argc, const char** argv)
{
FuncRunResult runResult;
try {
tcu::CommandLine cmdLine(argc, argv);
std::cout << "testmain end argc"<< argc << ";" << argv[0] << ";" << argv[1] << ";" << argv[2] << std::endl;
tcu::DirArchive archive(cmdLine.getArchiveDir());
de::UniquePtr<tcu::Platform> platform(createOhosPlatform());
de::UniquePtr<tcu::App> app(new tcu::App(*platform, archive, OHOS::Logdefine::tcutestlog, cmdLine));
for (;;) {
if (!app->iterate()) {
break;
};
};
runResult.isComplete = app->getResult().isComplete;
runResult.numPassed = app->getResult().numPassed;
runResult.numExecuted = app->getResult().numExecuted;
runResult.numFailed = app->getResult().numFailed;
runResult.numNotSupported = app->getResult().numNotSupported;
runResult.numWarnings = app->getResult().numWarnings;
runResult.numWaived = app->getResult().numWaived;
} catch (const std::exception &e) {
tcu::die("%s", e.what());
};
return runResult;
}
\ No newline at end of file
/*
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef UBO_FUNC_H
#define UBO_FUNC_H
struct FuncRunResult {
int numExecuted; // !< Total number of cases executed.
int numPassed; // !< Number of cases passed.
int numFailed; // !< Number of cases failed.
int numNotSupported; // !< Number of cases not supported.
int numWarnings; // !< Number of QualityWarning / CompatibilityWarning results.
int numWaived; // !< Number of waived tests.
bool isComplete; // !< Is run complete.
};
void RegistPackage(void);
FuncRunResult RunTestKHRGLES(int argc, const char** argv);
#endif // UBO_FUNC_H
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册