Commit f83c19c8 by Edward Thomson

Merge pull request #2832 from ethomson/appveyor_badge

64-bit Appveyor Builds
parents 6e5a397c 7c48508b
...@@ -2,6 +2,12 @@ version: '{build}' ...@@ -2,6 +2,12 @@ version: '{build}'
branches: branches:
only: only:
- master - master
environment:
matrix:
- GENERATOR: "Visual Studio 11"
ARCH: 32
- GENERATOR: "Visual Studio 11 Win64"
ARCH: 64
build_script: build_script:
- ps: >- - ps: >-
choco install cmake choco install cmake
...@@ -12,7 +18,7 @@ build_script: ...@@ -12,7 +18,7 @@ build_script:
cd build cd build
cmake -D ENABLE_TRACE=ON -D BUILD_CLAR=ON -D STDCALL=ON .. -G"Visual Studio 11" cmake -D ENABLE_TRACE=ON -D BUILD_CLAR=ON .. -G"$env:GENERATOR"
cmake --build . --config RelWithDebInfo cmake --build . --config RelWithDebInfo
test_script: test_script:
......
...@@ -24,12 +24,10 @@ do { \ ...@@ -24,12 +24,10 @@ do { \
structname structname##_macro_latest = macroinit; \ structname structname##_macro_latest = macroinit; \
structname structname##_func_latest; \ structname structname##_func_latest; \
int structname##_curr_ver = structver - 1; \ int structname##_curr_ver = structver - 1; \
memset(&structname##_func_latest, 0, sizeof(structname##_func_latest)); \
cl_git_pass(funcinitname(&structname##_func_latest, structver)); \ cl_git_pass(funcinitname(&structname##_func_latest, structver)); \
cl_check_( \ options_cmp(&structname##_macro_latest, &structname##_func_latest, \
memcmp(&structname##_macro_latest, &structname##_func_latest, \ sizeof(structname), STRINGIFY(structname)); \
sizeof(structname)) == 0, \
"Macro-based and function-based initializer for " STRINGIFY(structname) \
" are not equivalent."); \
\ \
while (structname##_curr_ver > 0) \ while (structname##_curr_ver > 0) \
{ \ { \
...@@ -39,8 +37,40 @@ do { \ ...@@ -39,8 +37,40 @@ do { \
}\ }\
} while(0) } while(0)
void test_structinit_structinit__compare(void) static void options_cmp(void *one, void *two, size_t size, const char *name)
{ {
size_t i;
for (i = 0; i < size; i++) {
if (((char *)one)[i] != ((char *)two)[i]) {
char desc[1024];
p_snprintf(desc, 1024, "Difference in %s at byte %d: macro=%u / func=%u",
name, i, ((char *)one)[i], ((char *)two)[i]);
clar__fail(__FILE__, __LINE__,
"Difference between macro and function options initializer",
desc, 0);
return;
}
}
}
void test_core_structinit__compare(void)
{
/* These tests assume that they can memcmp() two structures that were
* initialized with the same static initializer. Eg,
* git_blame_options = GIT_BLAME_OPTIONS_INIT;
*
* This assumption fails when there is padding between structure members,
* which is not guaranteed to be initialized to anything sane at all.
*
* Assume most compilers, in a debug build, will clear that memory for
* us or set it to sentinal markers. Etc.
*/
#if !defined(DEBUG) && !defined(_DEBUG)
clar__skip();
#endif
/* blame */ /* blame */
CHECK_MACRO_FUNC_INIT_EQUAL( \ CHECK_MACRO_FUNC_INIT_EQUAL( \
git_blame_options, GIT_BLAME_OPTIONS_VERSION, \ git_blame_options, GIT_BLAME_OPTIONS_VERSION, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment