Merge github.com:grpc/grpc into unknown_frame

pull/4339/head
Craig Tiller 9 years ago
commit d60dce059c
  1. 66
      Makefile
  2. 20
      build.yaml
  3. 6
      src/core/census/context.h
  4. 2
      src/core/transport/chttp2/frame_data.c
  5. 4
      src/core/transport/chttp2/hpack_parser.c
  6. 6
      test/core/bad_client/tests/headers.c
  7. 1
      test/core/security/credentials_test.c
  8. 14
      test/core/surface/completion_queue_test.c
  9. 17
      test/core/surface/init_test.c
  10. 28
      tools/run_tests/sources_and_headers.json
  11. 14
      tools/run_tests/tests.json
  12. 52
      vsprojects/buildtests_c.sln
  13. 8
      vsprojects/vcxproj/test/init_test/init_test.vcxproj
  14. 8
      vsprojects/vcxproj/test/init_test/init_test.vcxproj.filters

File diff suppressed because one or more lines are too long

@ -1325,6 +1325,16 @@ targets:
- mac
- linux
- posix
- name: init_test
build: test
language: c
src:
- test/core/surface/init_test.c
deps:
- grpc_test_util
- grpc
- gpr_test_util
- gpr
- name: invalid_call_argument_test
build: test
language: c
@ -1408,16 +1418,6 @@ targets:
- grpc
- gpr_test_util
- gpr
- name: multi_init_test
build: test
language: c
src:
- test/core/surface/multi_init_test.c
deps:
- grpc_test_util
- grpc
- gpr_test_util
- gpr
- name: multiple_server_queues_test
build: test
language: c

@ -39,11 +39,7 @@
/* census_context is the in-memory representation of information needed to
* maintain tracing, RPC statistics and resource usage information. */
struct census_context {
gpr_uint64 op_id; /* Operation identifier - unique per-context */
gpr_uint64 trace_id; /* Globally unique trace identifier */
/* TODO(aveitch) Add census tags:
const census_tag_set *tags;
*/
census_tag_set *tags; /* Opaque data structure for census tags. */
};
#endif /* GRPC_INTERNAL_CORE_CENSUS_CONTEXT_H */

@ -118,7 +118,7 @@ void grpc_chttp2_encode_data(gpr_uint32 id, gpr_slice_buffer *inbuf,
hdr = gpr_slice_malloc(9);
p = GPR_SLICE_START_PTR(hdr);
GPR_ASSERT(write_bytes < 16777316);
GPR_ASSERT(write_bytes < (1<<24));
*p++ = (gpr_uint8)(write_bytes >> 16);
*p++ = (gpr_uint8)(write_bytes >> 8);
*p++ = (gpr_uint8)(write_bytes);

@ -1418,6 +1418,9 @@ grpc_chttp2_parse_error grpc_chttp2_header_parser_parse(
GPR_TIMER_END("grpc_chttp2_hpack_parser_parse", 0);
return GRPC_CHTTP2_CONNECTION_ERROR;
}
/* need to check for null stream: this can occur if we receive an invalid
stream id on a header */
if (stream_parsing != NULL) {
if (parser->is_boundary) {
stream_parsing
->got_metadata_on_parse[stream_parsing->header_frames_received] = 1;
@ -1428,6 +1431,7 @@ grpc_chttp2_parse_error grpc_chttp2_header_parser_parse(
if (parser->is_eof) {
stream_parsing->received_close = 1;
}
}
parser->on_header = on_header_not_set;
parser->on_header_user_data = NULL;
parser->is_boundary = 0xde;

@ -195,5 +195,11 @@ int main(int argc, char **argv) {
"\x00\x00\x00\x09\x04\x00\x00\x00\x01",
0);
/* an invalid header found with fuzzing */
GRPC_RUN_BAD_CLIENT_TEST(verifier,
PFX_STR
"\x00\x00\x00\x01\x39\x67\xed\x1d\x64",
GRPC_BAD_CLIENT_DISCONNECT);
return 0;
}

@ -1032,6 +1032,7 @@ static void test_get_well_known_google_credentials_file_path(void) {
GPR_ASSERT(path == NULL);
#endif /* GPR_POSIX_ENV || GPR_LINUX_ENV */
gpr_setenv("HOME", old_home);
gpr_free(old_home);
#else /* GPR_POSIX_FILE */
char *path = grpc_get_well_known_google_credentials_file_path();
GPR_ASSERT(path != NULL);

@ -175,6 +175,19 @@ static void test_pluck(void) {
grpc_exec_ctx_finish(&exec_ctx);
}
static void test_pluck_after_shutdown(void) {
grpc_event ev;
grpc_completion_queue *cc;
LOG_TEST("test_pluck_after_shutdown");
cc = grpc_completion_queue_create(NULL);
grpc_completion_queue_shutdown(cc);
ev = grpc_completion_queue_pluck(cc, NULL, gpr_inf_future(GPR_CLOCK_REALTIME),
NULL);
GPR_ASSERT(ev.type == GRPC_QUEUE_SHUTDOWN);
grpc_completion_queue_destroy(cc);
}
#define TEST_THREAD_EVENTS 10000
typedef struct test_thread_options {
@ -343,6 +356,7 @@ int main(int argc, char **argv) {
test_shutdown_then_next_with_timeout();
test_cq_end_op();
test_pluck();
test_pluck_after_shutdown();
test_threading(1, 1);
test_threading(1, 10);
test_threading(10, 1);

@ -32,8 +32,11 @@
*/
#include <grpc/grpc.h>
#include <grpc/support/log.h>
#include "test/core/util/test_config.h"
static int g_flag;
static void test(int rounds) {
int i;
for (i = 0; i < rounds; i++) {
@ -44,7 +47,7 @@ static void test(int rounds) {
}
}
static void test_mixed() {
static void test_mixed(void) {
grpc_init();
grpc_init();
grpc_shutdown();
@ -53,11 +56,23 @@ static void test_mixed() {
grpc_shutdown();
}
static void plugin_init(void) { g_flag = 1; }
static void plugin_destroy(void) { g_flag = 2; }
static void test_plugin() {
grpc_register_plugin(plugin_init, plugin_destroy);
grpc_init();
GPR_ASSERT(g_flag == 1);
grpc_shutdown();
GPR_ASSERT(g_flag == 2);
}
int main(int argc, char **argv) {
grpc_test_init(argc, argv);
test(1);
test(2);
test(3);
test_mixed();
test_plugin();
return 0;
}

@ -688,6 +688,20 @@
"test/core/httpcli/httpcli_test.c"
]
},
{
"deps": [
"gpr",
"gpr_test_util",
"grpc",
"grpc_test_util"
],
"headers": [],
"language": "c",
"name": "init_test",
"src": [
"test/core/surface/init_test.c"
]
},
{
"deps": [
"gpr",
@ -798,20 +812,6 @@
"test/core/compression/message_compress_test.c"
]
},
{
"deps": [
"gpr",
"gpr_test_util",
"grpc",
"grpc_test_util"
],
"headers": [],
"language": "c",
"name": "multi_init_test",
"src": [
"test/core/surface/multi_init_test.c"
]
},
{
"deps": [
"gpr",

@ -789,7 +789,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "invalid_call_argument_test",
"name": "init_test",
"platforms": [
"linux",
"mac",
@ -807,7 +807,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "json_rewrite_test",
"name": "invalid_call_argument_test",
"platforms": [
"linux",
"mac",
@ -825,7 +825,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "json_test",
"name": "json_rewrite_test",
"platforms": [
"linux",
"mac",
@ -843,7 +843,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "lame_client_test",
"name": "json_test",
"platforms": [
"linux",
"mac",
@ -861,7 +861,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "lb_policies_test",
"name": "lame_client_test",
"platforms": [
"linux",
"mac",
@ -879,7 +879,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "message_compress_test",
"name": "lb_policies_test",
"platforms": [
"linux",
"mac",
@ -897,7 +897,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "multi_init_test",
"name": "message_compress_test",
"platforms": [
"linux",
"mac",

@ -1588,7 +1588,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "httpcli_parser_test", "vcxp
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid_call_argument_test", "vcxproj\test\invalid_call_argument_test\invalid_call_argument_test.vcxproj", "{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "init_test", "vcxproj\test\init_test\init_test.vcxproj", "{117CA7AD-C42B-9217-6C95-42A801777BC5}"
ProjectSection(myProperties) = preProject
lib = "False"
EndProjectSection
@ -1599,27 +1599,27 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid_call_argument_test"
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_rewrite", "vcxproj\test\json_rewrite\json_rewrite.vcxproj", "{57B36FF6-25B1-2475-D07A-2E9097E2C792}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid_call_argument_test", "vcxproj\test\invalid_call_argument_test\invalid_call_argument_test.vcxproj", "{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}"
ProjectSection(myProperties) = preProject
lib = "False"
EndProjectSection
ProjectSection(ProjectDependencies) = postProject
{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}
{29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
{EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037}
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_rewrite_test", "vcxproj\test\json_rewrite_test\json_rewrite_test.vcxproj", "{DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_rewrite", "vcxproj\test\json_rewrite\json_rewrite.vcxproj", "{57B36FF6-25B1-2475-D07A-2E9097E2C792}"
ProjectSection(myProperties) = preProject
lib = "False"
EndProjectSection
ProjectSection(ProjectDependencies) = postProject
{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}
{29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
{EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037}
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_test", "vcxproj\test\json_test\json_test.vcxproj", "{05230AC7-4529-E6CF-0506-A063B5FF6642}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_rewrite_test", "vcxproj\test\json_rewrite_test\json_rewrite_test.vcxproj", "{DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}"
ProjectSection(myProperties) = preProject
lib = "False"
EndProjectSection
@ -1630,7 +1630,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_test", "vcxproj\test\j
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lame_client_test", "vcxproj\test\lame_client_test\lame_client_test.vcxproj", "{6E60B394-E17D-658A-6648-A2E6E183226F}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_test", "vcxproj\test\json_test\json_test.vcxproj", "{05230AC7-4529-E6CF-0506-A063B5FF6642}"
ProjectSection(myProperties) = preProject
lib = "False"
EndProjectSection
@ -1641,7 +1641,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lame_client_test", "vcxproj
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lb_policies_test", "vcxproj\test\lb_policies_test\lb_policies_test.vcxproj", "{62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lame_client_test", "vcxproj\test\lame_client_test\lame_client_test.vcxproj", "{6E60B394-E17D-658A-6648-A2E6E183226F}"
ProjectSection(myProperties) = preProject
lib = "False"
EndProjectSection
@ -1652,7 +1652,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lb_policies_test", "vcxproj
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "message_compress_test", "vcxproj\test\message_compress_test\message_compress_test.vcxproj", "{07170557-CCB0-D23C-8018-C2909D115DF9}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lb_policies_test", "vcxproj\test\lb_policies_test\lb_policies_test.vcxproj", "{62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}"
ProjectSection(myProperties) = preProject
lib = "False"
EndProjectSection
@ -1663,7 +1663,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "message_compress_test", "vc
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multi_init_test", "vcxproj\test\multi_init_test\multi_init_test.vcxproj", "{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "message_compress_test", "vcxproj\test\message_compress_test\message_compress_test.vcxproj", "{07170557-CCB0-D23C-8018-C2909D115DF9}"
ProjectSection(myProperties) = preProject
lib = "False"
EndProjectSection
@ -12396,6 +12396,22 @@ Global
{B6F60D1C-D4F3-0F1A-4A2F-9134629B7848}.Release-DLL|Win32.Build.0 = Release|Win32
{B6F60D1C-D4F3-0F1A-4A2F-9134629B7848}.Release-DLL|x64.ActiveCfg = Release|x64
{B6F60D1C-D4F3-0F1A-4A2F-9134629B7848}.Release-DLL|x64.Build.0 = Release|x64
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|Win32.ActiveCfg = Debug|Win32
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|x64.ActiveCfg = Debug|x64
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|Win32.ActiveCfg = Release|Win32
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|x64.ActiveCfg = Release|x64
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|Win32.Build.0 = Debug|Win32
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|x64.Build.0 = Debug|x64
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|Win32.Build.0 = Release|Win32
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|x64.Build.0 = Release|x64
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|Win32.Build.0 = Debug|Win32
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|x64.ActiveCfg = Debug|x64
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|x64.Build.0 = Debug|x64
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|Win32.ActiveCfg = Release|Win32
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|Win32.Build.0 = Release|Win32
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.ActiveCfg = Release|x64
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.Build.0 = Release|x64
{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|Win32.ActiveCfg = Debug|Win32
{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|x64.ActiveCfg = Debug|x64
{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|Win32.ActiveCfg = Release|Win32
@ -12508,22 +12524,6 @@ Global
{07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|Win32.Build.0 = Release|Win32
{07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|x64.ActiveCfg = Release|x64
{07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|x64.Build.0 = Release|x64
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Debug|Win32.ActiveCfg = Debug|Win32
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Debug|x64.ActiveCfg = Debug|x64
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Release|Win32.ActiveCfg = Release|Win32
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Release|x64.ActiveCfg = Release|x64
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Debug|Win32.Build.0 = Debug|Win32
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Debug|x64.Build.0 = Debug|x64
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Release|Win32.Build.0 = Release|Win32
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Release|x64.Build.0 = Release|x64
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Debug-DLL|Win32.Build.0 = Debug|Win32
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Debug-DLL|x64.ActiveCfg = Debug|x64
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Debug-DLL|x64.Build.0 = Debug|x64
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Release-DLL|Win32.ActiveCfg = Release|Win32
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Release-DLL|Win32.Build.0 = Release|Win32
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Release-DLL|x64.ActiveCfg = Release|x64
{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}.Release-DLL|x64.Build.0 = Release|x64
{88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|Win32.ActiveCfg = Debug|Win32
{88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|x64.ActiveCfg = Debug|x64
{88AF688E-E43C-5E20-6966-CF559F597D82}.Release|Win32.ActiveCfg = Release|Win32

@ -20,7 +20,7 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{26D0B11B-FCB4-6527-4B5E-FC2A51BE5FB9}</ProjectGuid>
<ProjectGuid>{117CA7AD-C42B-9217-6C95-42A801777BC5}</ProjectGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
@ -55,13 +55,13 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<TargetName>multi_init_test</TargetName>
<TargetName>init_test</TargetName>
<Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
<Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib>
<Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<TargetName>multi_init_test</TargetName>
<TargetName>init_test</TargetName>
<Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
<Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib>
<Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl>
@ -143,7 +143,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\test\core\surface\multi_init_test.c">
<ClCompile Include="..\..\..\..\test\core\surface\init_test.c">
</ClCompile>
</ItemGroup>
<ItemGroup>

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\..\..\test\core\surface\multi_init_test.c">
<ClCompile Include="..\..\..\..\test\core\surface\init_test.c">
<Filter>test\core\surface</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Filter Include="test">
<UniqueIdentifier>{9fd58330-04b7-e69b-7217-2b6df7135781}</UniqueIdentifier>
<UniqueIdentifier>{a29deb69-37b5-31c0-c4a2-da409b5fe7ac}</UniqueIdentifier>
</Filter>
<Filter Include="test\core">
<UniqueIdentifier>{a1129343-c108-ef14-75a6-89805909cda1}</UniqueIdentifier>
<UniqueIdentifier>{cecabaca-db86-b86c-3ad7-ad6fc6958f15}</UniqueIdentifier>
</Filter>
<Filter Include="test\core\surface">
<UniqueIdentifier>{7b12af46-5c98-9a39-b0db-82bdc9fb52d2}</UniqueIdentifier>
<UniqueIdentifier>{93a3608f-710d-f929-fa89-6f762d06cb4c}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>
Loading…
Cancel
Save