Skip to content

Commit 8ae2a3f

Browse files
lstipakovordex
authored andcommitted
Integrate Google Test framework
Implemented sample test for LogInfo class. OVPN3-27
1 parent 68ae101 commit 8ae2a3f

11 files changed

+269
-7
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
README.html
2+
x64
3+
*.vcxproj.user
4+
*.ipch

README.rst

+32-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,8 @@ Create ``parms_local.py`` inside ``~/ovpn3/core/win`` directory which overrides
179179
"BUILD" : "c:\\Users\\user\\Projects\\ovpn3-build",
180180
"LIB_VERSIONS" : {
181181
"asio" : "asio-cc1bd58f9ebb15afbebf53207015ff690b338195"
182-
}
182+
},
183+
"GTEST_ROOT": "c:\\Users\\user\\Projects\\googletest"
183184
}
184185
185186
Download dependencies as tar(zip)balls to DEP directory defined in previous step:
@@ -233,6 +234,36 @@ Run the test::
233234
user 0m15.800s
234235
sys 0m0.004s
235236

237+
The OpenVPN 3 core also includes unit tests, which are based on
238+
Google Test framework. To run unit tests, you need to install
239+
CMake and build Google Test.
240+
241+
Building Google Test on Linux::
242+
243+
$ git clone https://github.com/google/googletest.git
244+
$ cd googletest
245+
$ cmake . && cmake --build .
246+
247+
Building Google Test on Windows::
248+
249+
> git clone https://github.com/google/googletest.git
250+
> cd googletest
251+
> cmake -G "Visual Studio 14 2015 Win64" .
252+
> cmake --build .
253+
254+
After Google Test is built you are ready to build and run unit tests.
255+
256+
Build and run tests on Linux::
257+
258+
$ cd ovpn3/core/test/unittests
259+
$ GTEST_DIR=~/googletest ECHO=1 PROF=linux ASIO_DIR=~/asio MTLS_SYS=1 LZ4_SYS=1 NOSSL=1 $O3/core/scripts/build test_log
260+
$ ./test_log
261+
262+
Build and run tests on Windows::
263+
264+
$ cd ovpn3/core/win
265+
$ python build.py ../test/unittests/test_log.cpp unittest
266+
$ test_log.exe
236267

237268
Developer Guide
238269
---------------

scripts/build

+8
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ if [ -z "$1" ]; then
4848
echo " CITY=1 -- build with Cityhash hash library"
4949
echo " JAVA=1 -- build with JVM"
5050
echo ' EXTRA_CPP="foo1.cpp foo2.cpp" -- add extra .cpp files'
51+
echo " GTEST_DIR=<dir> -- specify googletest tree, required for building unit tests"
5152
for s in $(enum_build_extras) ; do
5253
. $s args
5354
done
@@ -194,6 +195,13 @@ if [ "$ASIO" = "1" ] || [ "$ASIO_DIR" ]; then
194195
CPPFLAGS="$CPPFLAGS -DUSE_ASIO -DASIO_STANDALONE -DASIO_NO_DEPRECATED -I$ASIO_DIR/asio/include"
195196
fi
196197

198+
# gtest
199+
if [ "$GTEST_DIR" ]; then
200+
CPPFLAGS="$CPPFLAGS -I$GTEST_DIR/googletest/include"
201+
LIBDIRS="$LIBDIRS -L$GTEST_DIR/googlemock/gtest"
202+
LIBS="$LIBS -lgtest"
203+
fi
204+
197205
# LZO compression
198206
if [ "$LZO" = "1" ]; then
199207
LIBDIRS="$LIBDIRS -L$DEP_DIR/lzo/lzo-$PLATFORM/lib"

test/unittests/test_log.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include <client/ovpncli.cpp>
2+
#include <gtest/gtest.h>
3+
#include <string>
4+
#include <sstream>
5+
6+
namespace unittests
7+
{
8+
TEST(LogInfoTest, TestLogInfo)
9+
{
10+
std::string msg("logMessage");
11+
openvpn::ClientAPI::LogInfo logInfo(msg);
12+
auto text = logInfo.text;
13+
14+
ASSERT_EQ(text, msg);
15+
}
16+
} // namespace
17+
18+
int main(int argc, char **argv)
19+
{
20+
::testing::InitGoogleTest(&argc, argv);
21+
return RUN_ALL_TESTS();
22+
}

test/unittests/unittests.vcxproj

+143
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|Win32">
5+
<Configuration>Debug</Configuration>
6+
<Platform>Win32</Platform>
7+
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Release|Win32">
9+
<Configuration>Release</Configuration>
10+
<Platform>Win32</Platform>
11+
</ProjectConfiguration>
12+
<ProjectConfiguration Include="Debug|x64">
13+
<Configuration>Debug</Configuration>
14+
<Platform>x64</Platform>
15+
</ProjectConfiguration>
16+
<ProjectConfiguration Include="Release|x64">
17+
<Configuration>Release</Configuration>
18+
<Platform>x64</Platform>
19+
</ProjectConfiguration>
20+
</ItemGroup>
21+
<PropertyGroup Label="Globals">
22+
<ProjectGuid>{18446924-20CC-4EB7-B639-A76C1422E5C2}</ProjectGuid>
23+
<RootNamespace>unittests</RootNamespace>
24+
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
25+
</PropertyGroup>
26+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
27+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
28+
<ConfigurationType>Application</ConfigurationType>
29+
<UseDebugLibraries>true</UseDebugLibraries>
30+
<PlatformToolset>v140</PlatformToolset>
31+
<CharacterSet>MultiByte</CharacterSet>
32+
</PropertyGroup>
33+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
34+
<ConfigurationType>Application</ConfigurationType>
35+
<UseDebugLibraries>false</UseDebugLibraries>
36+
<PlatformToolset>v140</PlatformToolset>
37+
<WholeProgramOptimization>true</WholeProgramOptimization>
38+
<CharacterSet>MultiByte</CharacterSet>
39+
</PropertyGroup>
40+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
41+
<ConfigurationType>Application</ConfigurationType>
42+
<UseDebugLibraries>true</UseDebugLibraries>
43+
<PlatformToolset>v140</PlatformToolset>
44+
<CharacterSet>MultiByte</CharacterSet>
45+
</PropertyGroup>
46+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
47+
<ConfigurationType>Application</ConfigurationType>
48+
<UseDebugLibraries>false</UseDebugLibraries>
49+
<PlatformToolset>v140</PlatformToolset>
50+
<WholeProgramOptimization>true</WholeProgramOptimization>
51+
<CharacterSet>MultiByte</CharacterSet>
52+
</PropertyGroup>
53+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
54+
<ImportGroup Label="ExtensionSettings">
55+
</ImportGroup>
56+
<ImportGroup Label="Shared">
57+
</ImportGroup>
58+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
59+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
60+
</ImportGroup>
61+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
62+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
63+
</ImportGroup>
64+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
65+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
66+
</ImportGroup>
67+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
68+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
69+
</ImportGroup>
70+
<PropertyGroup Label="UserMacros" />
71+
<PropertyGroup />
72+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
73+
<ClCompile>
74+
<WarningLevel>TurnOffAllWarnings</WarningLevel>
75+
<Optimization>Disabled</Optimization>
76+
<SDLCheck>false</SDLCheck>
77+
<AdditionalIncludeDirectories>$(OVPN3_BUILD)\amd64\mbedtls\include;$(OVPN3_BUILD)\amd64\lz4\lib;$(GTEST_ROOT)\googletest\include;$(OVPN3_CORE);$(OVPN3_BUILD)\amd64\asio\asio\include;$(OVPN3_TAP_WINDOWS)\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
78+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NOMINMAX;_WIN32_WINNT=0x0600;USE_ASIO;ASIO_STANDALONE;USE_MBEDTLS;HAVE_LZ4;OPENVPN_FORCE_TUN_NULL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
79+
</ClCompile>
80+
<Link>
81+
<GenerateDebugInformation>true</GenerateDebugInformation>
82+
<AdditionalDependencies>lz4.lib;mbedtls.lib;Iphlpapi.lib;gtestd.lib;%(AdditionalDependencies)</AdditionalDependencies>
83+
<AdditionalLibraryDirectories>$(OVPN3_BUILD)\amd64\mbedtls\library;$(GTEST_ROOT)\msvc\gtest\Debug\;%(AdditionalLibraryDirectories);$(OVPN3_BUILD)\amd64\lz4\lib</AdditionalLibraryDirectories>
84+
</Link>
85+
</ItemDefinitionGroup>
86+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
87+
<ClCompile>
88+
<WarningLevel>TurnOffAllWarnings</WarningLevel>
89+
<Optimization>Disabled</Optimization>
90+
<SDLCheck>false</SDLCheck>
91+
<AdditionalIncludeDirectories>$(OVPN3_BUILD)\amd64\mbedtls\include;$(OVPN3_BUILD)\amd64\lz4\lib;$(GTEST_ROOT)\googletest\include;$(OVPN3_CORE);$(OVPN3_BUILD)\amd64\asio\asio\include;$(OVPN3_TAP_WINDOWS)\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
92+
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
93+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NOMINMAX;_WIN32_WINNT=0x0600;USE_ASIO;ASIO_STANDALONE;USE_MBEDTLS;HAVE_LZ4;OPENVPN_FORCE_TUN_NULL;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
94+
</ClCompile>
95+
<Link>
96+
<GenerateDebugInformation>true</GenerateDebugInformation>
97+
<AdditionalDependencies>lz4.lib;mbedtls.lib;Iphlpapi.lib;gtest.lib;%(AdditionalDependencies)</AdditionalDependencies>
98+
<AdditionalLibraryDirectories>$(OVPN3_BUILD)\amd64\mbedtls\library;$(GTEST_ROOT)\googlemock\gtest\Debug\;%(AdditionalLibraryDirectories);$(OVPN3_BUILD)\amd64\lz4\lib</AdditionalLibraryDirectories>
99+
</Link>
100+
</ItemDefinitionGroup>
101+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
102+
<ClCompile>
103+
<WarningLevel>TurnOffAllWarnings</WarningLevel>
104+
<Optimization>MaxSpeed</Optimization>
105+
<FunctionLevelLinking>true</FunctionLevelLinking>
106+
<IntrinsicFunctions>true</IntrinsicFunctions>
107+
<SDLCheck>false</SDLCheck>
108+
<AdditionalIncludeDirectories>$(OVPN3_BUILD)\amd64\mbedtls\include;$(OVPN3_BUILD)\amd64\lz4\lib;$(GTEST_ROOT)\googletest\include;$(OVPN3_CORE);$(OVPN3_BUILD)\amd64\asio\asio\include;$(OVPN3_TAP_WINDOWS)\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
109+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NOMINMAX;_WIN32_WINNT=0x0600;USE_ASIO;ASIO_STANDALONE;USE_MBEDTLS;HAVE_LZ4;OPENVPN_FORCE_TUN_NULL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
110+
</ClCompile>
111+
<Link>
112+
<GenerateDebugInformation>true</GenerateDebugInformation>
113+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
114+
<OptimizeReferences>true</OptimizeReferences>
115+
<AdditionalDependencies>lz4.lib;mbedtls.lib;Iphlpapi.lib;gtest.lib;%(AdditionalDependencies)</AdditionalDependencies>
116+
<AdditionalLibraryDirectories>$(OVPN3_BUILD)\amd64\mbedtls\library;$(GTEST_ROOT)\msvc\gtest\Release\;%(AdditionalLibraryDirectories);$(OVPN3_BUILD)\amd64\lz4\lib</AdditionalLibraryDirectories>
117+
</Link>
118+
</ItemDefinitionGroup>
119+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
120+
<ClCompile>
121+
<WarningLevel>TurnOffAllWarnings</WarningLevel>
122+
<Optimization>MaxSpeed</Optimization>
123+
<FunctionLevelLinking>true</FunctionLevelLinking>
124+
<IntrinsicFunctions>true</IntrinsicFunctions>
125+
<SDLCheck>false</SDLCheck>
126+
<AdditionalIncludeDirectories>$(OVPN3_BUILD)\amd64\mbedtls\include;$(OVPN3_BUILD)\amd64\lz4\lib;$(GTEST_ROOT)\googletest\include;$(OVPN3_CORE);$(OVPN3_BUILD)\amd64\asio\asio\include;$(OVPN3_TAP_WINDOWS)\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
127+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NOMINMAX;_WIN32_WINNT=0x0600;USE_ASIO;ASIO_STANDALONE;USE_MBEDTLS;HAVE_LZ4;OPENVPN_FORCE_TUN_NULL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
128+
</ClCompile>
129+
<Link>
130+
<GenerateDebugInformation>true</GenerateDebugInformation>
131+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
132+
<OptimizeReferences>true</OptimizeReferences>
133+
<AdditionalDependencies>lz4.lib;mbedtls.lib;Iphlpapi.lib;gtest.lib;%(AdditionalDependencies)</AdditionalDependencies>
134+
<AdditionalLibraryDirectories>$(OVPN3_BUILD)\amd64\mbedtls\library;$(GTEST_ROOT)\googlemock\gtest\Release\;%(AdditionalLibraryDirectories);$(OVPN3_BUILD)\amd64\lz4\lib</AdditionalLibraryDirectories>
135+
</Link>
136+
</ItemDefinitionGroup>
137+
<ItemGroup>
138+
<ClCompile Include="test_log.cpp" />
139+
</ItemGroup>
140+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
141+
<ImportGroup Label="ExtensionTargets">
142+
</ImportGroup>
143+
</Project>
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup>
4+
<Filter Include="Source Files">
5+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6+
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7+
</Filter>
8+
<Filter Include="Header Files">
9+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10+
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
11+
</Filter>
12+
<Filter Include="Resource Files">
13+
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14+
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
15+
</Filter>
16+
</ItemGroup>
17+
<ItemGroup>
18+
<ClCompile Include="test_log.cpp">
19+
<Filter>Source Files</Filter>
20+
</ClCompile>
21+
</ItemGroup>
22+
</Project>

win/build.py

+15-2
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,19 @@ def src_fn(parms, srcfile):
1616
srcfile = cli_cpp(parms)
1717
return srcfile
1818

19+
def is_unit_test(argv):
20+
unit_test = False
21+
if len(argv) >= 2:
22+
unit_test = argv[1] == "unittest"
23+
return unit_test
24+
1925
def src_fn_argv(parms, argv):
2026
srcfile = None
2127
if len(argv) >= 1:
2228
srcfile = argv[0]
2329
return src_fn(parms, srcfile)
2430

25-
def build(parms, srcfile):
31+
def build(parms, srcfile, unit_test):
2632
# Debug?
2733
if parms['DEBUG']:
2834
dbg_rel_flags = "/Zi"
@@ -62,6 +68,11 @@ def build(parms, srcfile):
6268
options['extra_lib_path'] += " /LIBPATH:%(jsoncpp)s/dist" % options
6369
options['extra_lib'] += " jsoncpp.lib"
6470

71+
if unit_test:
72+
options['extra_lib'] += " gtest.lib"
73+
options['extra_inc'] += " /I %s" % os.path.join(parms["GTEST_ROOT"], "googletest", "include")
74+
options['extra_lib_path'] += " /LIBPATH:%s" % os.path.join(parms["GTEST_ROOT"], "googlemock", "gtest", "Debug")
75+
6576
# Build OpenVPN Connect
6677
if parms.get("CONNECT"):
6778
options['extra_inc'] += " /I " + os.path.join(parms['OVPN3'], "common")
@@ -72,4 +83,6 @@ def build(parms, srcfile):
7283
if __name__ == "__main__":
7384
import sys
7485
from parms import PARMS
75-
build(PARMS, src_fn_argv(PARMS, sys.argv[1:]))
86+
src = src_fn_argv(PARMS, sys.argv[1:])
87+
unit_test = is_unit_test(sys.argv[1:])
88+
build(PARMS, src, unit_test)

win/ovpn3-core.sln

+17-1
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,40 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 14
44
VisualStudioVersion = 14.0.25420.1
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ovpn3-core", "ovpn3-core.vcxproj", "{1F891260-2039-494F-9777-EC5166AF31BC}"
6+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cli", "ovpn3-core.vcxproj", "{1F891260-2039-494F-9777-EC5166AF31BC}"
7+
EndProject
8+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittests", "..\test\unittests\unittests.vcxproj", "{18446924-20CC-4EB7-B639-A76C1422E5C2}"
79
EndProject
810
Global
911
GlobalSection(SolutionConfigurationPlatforms) = preSolution
12+
Debug|ARM = Debug|ARM
1013
Debug|x64 = Debug|x64
1114
Debug|x86 = Debug|x86
15+
Release|ARM = Release|ARM
1216
Release|x64 = Release|x64
1317
Release|x86 = Release|x86
1418
EndGlobalSection
1519
GlobalSection(ProjectConfigurationPlatforms) = postSolution
20+
{1F891260-2039-494F-9777-EC5166AF31BC}.Debug|ARM.ActiveCfg = Debug|Win32
1621
{1F891260-2039-494F-9777-EC5166AF31BC}.Debug|x64.ActiveCfg = Debug|x64
1722
{1F891260-2039-494F-9777-EC5166AF31BC}.Debug|x64.Build.0 = Debug|x64
1823
{1F891260-2039-494F-9777-EC5166AF31BC}.Debug|x86.ActiveCfg = Debug|Win32
1924
{1F891260-2039-494F-9777-EC5166AF31BC}.Debug|x86.Build.0 = Debug|Win32
25+
{1F891260-2039-494F-9777-EC5166AF31BC}.Release|ARM.ActiveCfg = Release|Win32
2026
{1F891260-2039-494F-9777-EC5166AF31BC}.Release|x64.ActiveCfg = Release|x64
2127
{1F891260-2039-494F-9777-EC5166AF31BC}.Release|x64.Build.0 = Release|x64
2228
{1F891260-2039-494F-9777-EC5166AF31BC}.Release|x86.ActiveCfg = Release|Win32
2329
{1F891260-2039-494F-9777-EC5166AF31BC}.Release|x86.Build.0 = Release|Win32
30+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Debug|ARM.ActiveCfg = Debug|Win32
31+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Debug|x64.ActiveCfg = Debug|x64
32+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Debug|x64.Build.0 = Debug|x64
33+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Debug|x86.ActiveCfg = Debug|Win32
34+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Debug|x86.Build.0 = Debug|Win32
35+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Release|ARM.ActiveCfg = Release|Win32
36+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Release|x64.ActiveCfg = Release|x64
37+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Release|x64.Build.0 = Release|x64
38+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Release|x86.ActiveCfg = Release|Win32
39+
{18446924-20CC-4EB7-B639-A76C1422E5C2}.Release|x86.Build.0 = Release|Win32
2440
EndGlobalSection
2541
GlobalSection(SolutionProperties) = preSolution
2642
HideSolutionNode = FALSE

win/ovpn3-core.vcxproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@
464464
<SuppressStartupBanner>false</SuppressStartupBanner>
465465
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
466466
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
467-
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
467+
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
468468
</ClCompile>
469469
<Link>
470470
<GenerateDebugInformation>true</GenerateDebugInformation>

win/parms.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
'asio' : "asio-20170227",
1616
'mbedtls' : "mbedtls-2.4.0",
1717
'lz4' : "lz4-1.7.5",
18-
}
18+
},
19+
"GTEST_ROOT": ""
1920
}
2021

2122
try:

win/utils.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,10 @@ def vc_cmd(parms, cmd, arch=None, succeed=0):
225225

226226
def vc_parms(parms, cmd_dict):
227227
cmd_dict["dbg_rel_flags"] = "/Zi" if parms['DEBUG'] else "/O2"
228-
cmd_dict["link_static_dynamic_flags"] = "/MT" if parms['STATIC'] else "/MD"
228+
flags = "/MT" if parms['STATIC'] else "/MD"
229+
if parms['DEBUG']:
230+
flags += "d"
231+
cmd_dict["link_static_dynamic_flags"] = flags
229232

230233
def patchfile(pkg_prefix, patchdir):
231234
return os.path.join(patchdir, one_prefix(pkg_prefix, patchdir))

0 commit comments

Comments
 (0)