There are two significant parts to this fix. The first is that the Connection object now has a method EnableAsyncOperation which registers the connection with a background thread which polls the connection. The EnableAsyncOperation needs to be callable from outside the connection because in normal client operation, the calls to open the connection are all internal to uAMQP. That means that the message sender and receiver need to call it when they're opened (and closed). The other major part of this change is that the AsyncOperationQueue now has a WaitForRequest API which does not normally poll (there is a test hook which enables polling but that is not normally used in most scenarios). The other part of this change fixes some concurrency issues associated with the Log::Stream functionality. Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com> * Update sdk/core/azure-core/src/logger.cpp Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com> * Update sdk/core/azure-core/test/ut/CMakeLists.txt Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com> * Update sdk/core/azure-core/test/ut/logging_test.cpp Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com> * Added ASAN as an option, converted transports to be bases to ensure consistancy --------- Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
409 lines
12 KiB
JSON
409 lines
12 KiB
JSON
{
|
|
"version": 3,
|
|
"cmakeMinimumRequired": {
|
|
"major": 3,
|
|
"minor": 13,
|
|
"patch": 0
|
|
},
|
|
"configurePresets": [
|
|
{
|
|
"name": "windows-default",
|
|
"displayName": "Windows",
|
|
"description": "Sets Ninja generator, and compilers. Configures vcpkg in manifest mode.",
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/out/build/${presetName}",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"VCPKG_MANIFEST_MODE": true
|
|
},
|
|
"vendor": {
|
|
"microsoft.com/VisualStudioSettings/CMake/1.0": {
|
|
"hostOS": [ "Windows" ]
|
|
}
|
|
},
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Windows"
|
|
}
|
|
},
|
|
{
|
|
"name": "msvc-windows-default",
|
|
"displayName": "MSVC Windows",
|
|
"description": "Sets MSVC generator, and compilers. Configures vcpkg in manifest mode.",
|
|
"generator": "Visual Studio 17 2022",
|
|
"binaryDir": "${sourceDir}/out/build/${presetName}",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"VCPKG_MANIFEST_MODE": true
|
|
},
|
|
"vendor": {
|
|
"microsoft.com/VisualStudioSettings/CMake/1.0": {
|
|
"hostOS": [ "Windows" ]
|
|
}
|
|
},
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Windows"
|
|
}
|
|
},
|
|
{
|
|
"name": "x64-static",
|
|
"displayName": "Windows x64 Static",
|
|
"description": "Windows Default, x64 architecture, static CRT.",
|
|
"inherits": "windows-default",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"VCPKG_TARGET_TRIPLET": "x64-windows-static",
|
|
"MSVC_USE_STATIC_CRT": true
|
|
},
|
|
"architecture": {
|
|
"value": "x64",
|
|
"strategy": "external"
|
|
}
|
|
},
|
|
{
|
|
"name": "x86-static",
|
|
"displayName": "Windows x86 Static",
|
|
"description": "Windows Default, x86 architecture.",
|
|
"inherits": "windows-default",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"VCPKG_TARGET_TRIPLET": "x86-windows-static",
|
|
"MSVC_USE_STATIC_CRT": true
|
|
},
|
|
"architecture": {
|
|
"value": "x86",
|
|
"strategy": "external"
|
|
}
|
|
},
|
|
{
|
|
"name": "x86-msvc-static",
|
|
"displayName": "Windows x86 MSVC Static",
|
|
"description": "Windows Default, MSVC, x86 architecture.",
|
|
"inherits": "msvc-windows-default",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"VCPKG_TARGET_TRIPLET": "x86-windows-static",
|
|
"MSVC_USE_STATIC_CRT": true
|
|
},
|
|
"architecture": "win32"
|
|
},
|
|
{
|
|
"name": "x64",
|
|
"displayName": "Windows x64",
|
|
"description": "x64 architecture.",
|
|
"inherits": "windows-default",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"VCPKG_TARGET_TRIPLET": "x64-windows",
|
|
"BUILD_SHARED_LIBS": true
|
|
},
|
|
"architecture": {
|
|
"value": "x64",
|
|
"strategy": "external"
|
|
}
|
|
},
|
|
{
|
|
"name": "x86",
|
|
"displayName": "Windows x86",
|
|
"description": "Ninja Generator, x86 architecture.",
|
|
"inherits": "windows-default",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"VCPKG_TARGET_TRIPLET": "x86-windows",
|
|
"BUILD_SHARED_LIBS": true
|
|
},
|
|
"architecture": {
|
|
"value": "x86",
|
|
"strategy": "external"
|
|
}
|
|
},
|
|
{
|
|
"name": "debug-build",
|
|
"displayName": "Debug Build",
|
|
"description": "Debug Build (Hidden)",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug"
|
|
}
|
|
},
|
|
{
|
|
"name": "release-build",
|
|
"displayName": "Release Build",
|
|
"description": "Release Build (Hidden)",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
|
}
|
|
},
|
|
{
|
|
"name": "enable-tests",
|
|
"displayName": "Enable Tests",
|
|
"description": "Enable Tests (Hidden)",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"BUILD_TESTING": true,
|
|
"ENABLE_PROXY_TESTS": false
|
|
}
|
|
},
|
|
{
|
|
"name": "enable-samples",
|
|
"displayName": "Enable Samples",
|
|
"description": "Enable Samples (Hidden)",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"BUILD_SAMPLES": true
|
|
}
|
|
},
|
|
{
|
|
"name": "enable-perf",
|
|
"displayName": "Enable Perf",
|
|
"description": "Enable Perf (Hidden)",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"BUILD_PERFORMANCE_TESTS": true
|
|
}
|
|
},
|
|
{
|
|
"name": "winhttp-transport",
|
|
"displayName": "Enable WinHTTP Transport",
|
|
"description": "Enable WinHTTP Transport (Hidden)",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"BUILD_TRANSPORT_WINHTTP": true
|
|
},
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Windows"
|
|
}
|
|
},
|
|
{
|
|
"name": "curl-transport",
|
|
"displayName": "Enable CURL Transport",
|
|
"description": "Enable CURL Transport (Hidden)",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"BUILD_TRANSPORT_CURL": true
|
|
}
|
|
},
|
|
{
|
|
"name": "enable-address-sanitizer",
|
|
"displayName": "Enable Address Sanitizer",
|
|
"description": "Enable Address Sanitizer (Hidden). Note: ASAN can be extremely disruptive, when enabling ASAN, make sure you run your application under the debugger.",
|
|
"hidden": true,
|
|
"environment": {
|
|
"CFLAGS": "/fsanitize=address",
|
|
"CXXFLAGS": "/fsanitize=address"
|
|
},
|
|
"cacheVariables": { "DISABLE_AZURE_CORE_OPENTELEMETRY": true },
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Windows"
|
|
}
|
|
},
|
|
{
|
|
"name": "x86-static-debug-tests",
|
|
"displayName": "x86 Debug With Tests, static",
|
|
"description": "Windows x86 Debug build with Tests configured",
|
|
"inherits": [ "x86-static", "debug-build", "enable-tests" ]
|
|
},
|
|
{
|
|
"name": "x86-static-release-tests",
|
|
"displayName": "x86 Release With Tests, static, libcurl",
|
|
"description": "Windows x86 Release build with Tests configured",
|
|
"inherits": [ "x86-static", "release-build", "enable-tests" ],
|
|
"cacheVariables": {
|
|
"RUN_LONG_UNIT_TESTS": true
|
|
}
|
|
},
|
|
{
|
|
"name": "x64-debug-tests",
|
|
"displayName": "x64 Debug With Tests",
|
|
"description": "Windows x64 Debug build with Tests configured",
|
|
"inherits": [ "x64", "debug-build", "enable-tests" ]
|
|
},
|
|
{
|
|
"name": "x86-msvc-static-debug-tests",
|
|
"displayName": "x86 MSVC Debug With Tests, static",
|
|
"description": "Windows x86 MSVC Debug build with Tests configured",
|
|
"inherits": [ "x86-msvc-static", "debug-build", "enable-tests" ]
|
|
},
|
|
{
|
|
"name": "x64-static-debug-tests",
|
|
"displayName": "x64 Debug With Tests, static",
|
|
"description": "Windows x64 Debug build with Tests configured",
|
|
"inherits": [ "x64-static", "debug-build", "enable-tests" ]
|
|
|
|
},
|
|
{
|
|
"name": "x64-static-debug-tests-curl",
|
|
"displayName": "x64 Debug With Tests, static, libcurl",
|
|
"description": "Windows x64 Debug build with Tests configured",
|
|
"inherits": [ "x64-static", "debug-build", "enable-tests", "curl-transport" ]
|
|
},
|
|
{
|
|
"name": "x64-static-debug-tests-winhttp",
|
|
"displayName": "x64 Debug With Tests, static, winhttp",
|
|
"description": "Windows x64 Debug build with Tests configured",
|
|
"inherits": [ "x64-static", "debug-build", "enable-tests", "winhttp-transport" ]
|
|
},
|
|
{
|
|
"name": "x64-static-debug-tests-OpenSSL111",
|
|
"displayName": "x64 Debug With Tests, static, OpenSSL 1.1.1, libcurl",
|
|
"description": "Windows x64 Debug build with Tests configured on OpenSSL 1.1.1",
|
|
"inherits": [ "x64-static", "debug-build", "enable-tests" ],
|
|
"cacheVariables": {
|
|
"VCPKG_OVERLAY_PORTS": "${sourceDir}\\vcpkg-custom-ports"
|
|
}
|
|
},
|
|
{
|
|
"name": "x86-static-release-tests-curl",
|
|
"displayName": "x86 Release With Tests, static, libcurl",
|
|
"description": "Windows x86 Release build with Tests configured",
|
|
"inherits": [
|
|
"x86-static",
|
|
"release-build",
|
|
"enable-tests",
|
|
"curl-transport"
|
|
]
|
|
},
|
|
{
|
|
"name": "x86-release-tests",
|
|
"displayName": "x86 Release With Tests (Note: Does not link because it sets BUILD_TRANSPORT_CUSTOM)",
|
|
"inherits": [ "x86", "release-build", "enable-tests", "curl-transport", "winhttp-transport" ],
|
|
"cacheVariables": {
|
|
"BUILD_TRANSPORT_CUSTOM": true
|
|
}
|
|
},
|
|
{
|
|
"name": "x64-release-tests",
|
|
"displayName": "x64 Release With Tests (Note: Does not link because it sets BUILD_TRANSPORT_CUSTOM)",
|
|
"inherits": [ "x64", "release-build", "enable-tests", "curl-transport", "winhttp-transport" ],
|
|
"cacheVariables": {
|
|
"BUILD_TRANSPORT_CUSTOM": true
|
|
}
|
|
},
|
|
{
|
|
"name": "x64-static-debug-perftests",
|
|
"displayName": "x64 Debug static With Perf Tests and samples, libcurl+winhttp",
|
|
"inherits": [
|
|
"x64-static",
|
|
"debug-build",
|
|
"enable-tests",
|
|
"enable-samples",
|
|
"enable-perf",
|
|
"winhttp-transport",
|
|
"curl-transport"
|
|
]
|
|
},
|
|
{
|
|
"name": "x86-msvc-static-debug-perftests",
|
|
"displayName": "x86 MSVC Debug static With Perf Tests and samples",
|
|
"inherits": [ "x86-msvc-static", "debug-build", "enable-tests", "enable-perf", "enable-samples", "curl-transport", "winhttp-transport" ]
|
|
},
|
|
{
|
|
"name": "x64-static-release-perftests",
|
|
"displayName": "x64 Release With Perf Tests, static",
|
|
"inherits": [ "x64-static", "release-build", "enable-perf" ]
|
|
},
|
|
{
|
|
"name": "linux-basic-gcc9",
|
|
"displayName": "Linux GCC 9",
|
|
"description": "Using compilers: C = /usr/bin/gcc-9, CXX = /usr/bin/g++-9",
|
|
"binaryDir": "${sourceDir}/out/build/${presetName}",
|
|
"generator": "Ninja",
|
|
"cacheVariables": {
|
|
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
|
|
"CMAKE_C_COMPILER": "/usr/bin/gcc-9",
|
|
"CMAKE_CXX_COMPILER": "/usr/bin/g++-9"
|
|
},
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Linux"
|
|
}
|
|
},
|
|
{
|
|
"name": "linux-basic-clang-11",
|
|
"displayName": "Linux clang-11",
|
|
"description": "Using compilers: C = /usr/bin/clang-11, CXX = /usr/bin/clang++-11",
|
|
"binaryDir": "${sourceDir}/out/build/${presetName}",
|
|
"generator": "Ninja",
|
|
"cacheVariables": {
|
|
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
|
|
"CMAKE_C_COMPILER": "/usr/bin/clang-11",
|
|
"CMAKE_CXX_COMPILER": "/usr/bin/clang++-11"
|
|
},
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Linux"
|
|
}
|
|
},
|
|
{
|
|
"name": "linux-basic-g++",
|
|
"displayName": "Linux G++",
|
|
"description": "Using compilers: C = /usr/bin/cc, CXX = /usr/bin/c++",
|
|
"binaryDir": "${sourceDir}/out/build/${presetName}",
|
|
"generator": "Ninja",
|
|
"cacheVariables": {
|
|
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
|
|
"CMAKE_C_COMPILER": "/usr/bin/cc",
|
|
"CMAKE_CXX_COMPILER": "/usr/bin/c++"
|
|
},
|
|
"condition": {
|
|
"type": "equals",
|
|
"lhs": "${hostSystemName}",
|
|
"rhs": "Linux"
|
|
}
|
|
},
|
|
{
|
|
"name": "linux-gcc9-debug",
|
|
"displayName": "Linux GCC 9 Debug",
|
|
"inherits": [ "linux-basic-gcc9", "debug-build" ]
|
|
},
|
|
{
|
|
"name": "linux-gcc9-debug-tests",
|
|
"inherits": [ "linux-basic-gcc9", "debug-build", "enable-tests" ],
|
|
"displayName": "Linux GCC 9 Debug+Tests"
|
|
},
|
|
{
|
|
"name": "linux-clang-11-debug",
|
|
"displayName": "Linux clang 11 Debug",
|
|
"inherits": [ "linux-basic-clang-11", "debug-build" ]
|
|
},
|
|
{
|
|
"name": "linux-clang-11-debug-tests",
|
|
"inherits": [ "linux-basic-clang-11", "debug-build", "enable-tests" ],
|
|
"displayName": "Linux clang 11 Debug+Tests"
|
|
},
|
|
{
|
|
"name": "linux-g++-debug",
|
|
"displayName": "Linux c++ Debug",
|
|
"inherits": [ "linux-basic-g++", "debug-build" ]
|
|
},
|
|
{
|
|
"name": "linux-g++-debug-tests",
|
|
"inherits": [ "linux-basic-g++", "debug-build", "enable-tests" ],
|
|
"displayName": "Linux c++ Debug+Tests"
|
|
},
|
|
{
|
|
"name": "linux-g++-debug-tests-samples",
|
|
"inherits": [ "linux-basic-g++", "debug-build", "enable-tests", "enable-samples" ],
|
|
"displayName": "Linux c++ Debug+Tests, samples"
|
|
},
|
|
{
|
|
"name": "generate-doxygen",
|
|
"displayName": "zz-Generate Doxygen",
|
|
"inherits": "x64-static",
|
|
"cacheVariables": {
|
|
"BUILD_DOCUMENTATION": true
|
|
}
|
|
}
|
|
]
|
|
}
|