1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>results.Windows</title> 5 </head> 6 <body> 7 <pre> 8 All failures in the libc++ test suite will be documented here. 9 10 Last run was with Clang (pre-3.1) and GCC 4.6.3 (with dw2 exception handling) and 11 mingw-w64 v2.0.3 on i686-w64-mingw32. 12 13 The following line was added to ./lib/buildit to make a static libc++ library because a DLL requires "declspec(dllexport)" or a .def file: 14 ar rcs libc++.a *.o 15 I also deleted libc++.dll and libc++.dll.a to make sure libc++ was linked statically to prevent unrelated issues from contaminating the test results. 16 The commands to build and test were (-nodefaultlibs does not work, lots of MinGW related stuff gets left out resulting in linker failures): 17 TRIPLE=i686-w64-mingw32 ./buildit 18 TRIPLE=i686-w64-mingw32 HEADER_INCLUDE="-I/home/Ruben/libcxx/include" LIBS="-L/home/ruben/libcxx/lib -lc++ -lpthread -lsupc++ -lmsvcr100 -Wl,--allow-multiple-definition" ./testit > test.log 2>&1 19 20 Note: Some locale tests may "Need investigating", but I think most problems are 21 caused by wrong/unportable locale naming in the tests. 22 Note: Some tests failed to link because "test.exe" was still running when ld.exe 23 tried to link the next test. I left these failures out of the list; they 24 account for about 10-30 failures, and are counted in the total scores below. 25 I reran some of these failures manually and they passed. 26 Note: Some tests fail at runtime but pass when run manually. Usage of std::cout 27 segfaults so further investigation is difficult. These also contribute to 28 the failures total, but are left out of the failure list, as the cause is 29 probably not located in that part of libc++, not locatable due to the lack 30 of usable debug info generated by Clang at this time. 31 32 TOTAL RESULTS: 33 Section failures / total sections: 104 / 1064 = 9.8% failures 34 Test failures / total number of tests: 292 / 4326 = 6.7% failures 35 36 depr/ 37 depr.c.headers/ 38 inttypes_h.pass.cpp: missing macros for C++. 39 uchar_h.pass.cpp: bug in mingw-w64 headers for C++11 builtin char types. 40 wchar_h.pass.cpp: Windows does not have swprintf, should use _snwprintf. 41 Suggest #define swprintf as _snwprintf for _WIN32. 42 exception.unexpected/ 43 set.unexpected/ 44 get_unexpected.pass.cpp: Segmentation fault - needs investigation. 45 set_unexpected.pass.cpp: idem. 46 diagnostics/ 47 syserr/ 48 syserr.errcat/ 49 syserr.errcat.objects/ 50 system_category.pass.cpp: Needs investigation. 51 input.output/ 52 file.streams/ 53 c.files/ 54 cinttypes.pass.cpp: missing macros for C++. 55 fstreams/ 56 filebuf.assign/ 57 member_swap.pass.cpp: Segmentation fault - needs investigation. 58 move_assign.pass.cpp: idem. 59 nonmember_swap.pass.cpp: idem. 60 filebuf.cons/ 61 move.pass.cpp: idem. 62 filebuf.members/ 63 open_pointers.pass.cpp: idem. 64 filebuf.virtuals/ 65 overflow.pass.cpp: idem. 66 pbackfail.pass.cpp: idem. 67 seekoff.pass.cpp: idem. 68 underflow.pass.cpp: idem. 69 fstream.assign/ 70 member_swap.pass.cpp: idem. 71 move_assign.pass.cpp: idem. 72 nonmember_swap.pass.cpp: idem. 73 fstream.cons/ 74 move.pass.cpp: idem. 75 pointer.pass.cpp: idem. 76 string.pass.cpp: idem. 77 fstream.members/ 78 open_pointer.pass.cpp: idem. 79 open_string.pass.cpp: idem. 80 ifstream.assign/ 81 member_swap.pass.cpp: idem. 82 move_assign.pass.cpp: idem. 83 nonmember_swap.pass.cpp: idem. 84 ifstream.cons/ 85 move.pass.cpp: idem. 86 pointer.pass.cpp: idem. 87 string.pass.cpp: idem. 88 ifstream.members/ 89 open_pointer.pass.cpp: idem. 90 open_string.pass.cpp: idem. 91 rdbuf.pass.cpp: idem. 92 ofstream.assign/ 93 member_swap.pass.cpp: idem. 94 move_assign.pass.cpp: idem. 95 nonmember_swap.pass.cpp: idem. 96 ofstream.cons/ 97 move.pass.cpp: idem. 98 pointer.pass.cpp: idem. 99 string.pass.cpp: idem. 100 ofstream.members/ 101 open_pointer.pass.cpp: idem. 102 open_string.pass.cpp: idem. 103 rdbuf.pass.cpp: idem. 104 iostream.format/ 105 ext.manip 106 get_money.pass.cpp: Windows locale names don't follow UNIX convention. 107 get_time.pass.cpp: idem. 108 put_money.pass.cpp: idem. 109 put_time.pass.cpp: idem. 110 output.streams/ 111 ostream.formatted/ 112 ostream.inserters.arithmetic/ 113 long_double.pass.cpp: Segfault - needs investigation. 114 pointer.pass.cpp: idem. 115 ostream_sentry/ 116 destruct.pass.cpp: idem. 117 iostream.objects/ 118 narrow.stream.objects/ 119 cerr.pass.cpp: idem. 120 cin.pass.cpp: idem. 121 wide.stream.objects/ 122 wcerr.pass.cpp: idem. 123 wcin.pass.cpp: idem. 124 iostreams.base/ 125 ios/ 126 basic.ios.members/ 127 copyfmt.pass.cpp: Windows locale names don't follow UNIX convention. 128 imbue.pass.cpp: idem. 129 move.pass.cpp: idem. 130 swap.pass.cpp: Windows locale names don't follow UNIX convention. 131 ios.base/ 132 ios.base.callback/ 133 register_callback.pass.cpp: Windows locale names don't follow UNIX convention. 134 ios.base.locales/ 135 imbue.pass.cpp: Windows locale names don't follow UNIX convention. 136 stream.buffers/ 137 streambuf/ 138 streambuf.cons/ 139 copy.pass.cpp: Windows locale names don't follow UNIX convention. 140 default.pass.cpp: idem. 141 streambuf.members/ 142 streambuf.buffer/ 143 locales.pass.cpp: Windows locale names don't follow UNIX convention. 144 streambuf.protected/ 145 streambuf.assign/ 146 assign.pass.cpp: Windows locale names don't follow UNIX convention. 147 swap.pass.cpp: idem. 148 language.support/ 149 support.exception/ 150 except.nested/ 151 assign.pass.cpp: Needs investigation. 152 ctor_copy.pass.cpp: idem. 153 ctor_default.pass.cpp: idem. 154 rethrow_if_nested.pass.cpp: idem. 155 rethrow_nested.pass.cpp: idem. 156 throw_with_nested.pass.cpp: idem. 157 propagation/ 158 current_exception.pass.cpp: Needs investigation. 159 exception_ptr.pass.cpp: idem. 160 make_exception_ptr.pass.cpp: idem. 161 rethrow_exception.pass.cpp: idem. 162 uncaught/ 163 uncaught_exception.pass.cpp: Needs investigation. 164 support.limits/ 165 limits/ 166 numeric.limits.members/ 167 digits.pass.cpp: Needs investigation (wrong assumptions?). 168 digits10.pass.cpp: idem. 169 support.runtime/ 170 support.start.term/ 171 quick_exit.pass.cpp: Not declared in libc++ headers. Is it from the ABI lib? 172 support.types/ 173 max_align_t.pass.cpp: needs investigation (wrong assumptions?). 174 localization/ 175 locale.categories/ 176 category.collate/ 177 locale.collate.byname/ 178 compare.pass.cpp: Windows locale names don't follow UNIX convention. 179 hash.pass.cpp: idem. 180 transform.pass.cpp: getenv should be replaced by putenv for portability. 181 Windows locale names don't follow UNIX convention. 182 types.pass.cpp: Windows locale names don't follow UNIX convention. 183 locale.categories/ 184 category.ctype/ 185 locale.codecvt/ 186 locale.codecvt.members/ 187 wchar_t_in.pass.cpp: Most likely wchar_t is assumed 4 bytes. 188 wchar_t_length.pass.cpp: idem. 189 wchar_t_out.pass.cpp: idem. 190 wchar_t_unshift.pass.cpp: idem. 191 locale.codecvt.byname/ 192 ctor_wchar_t.pass.cpp: Windows locale names don't follow UNIX convention. 193 locale.ctype.byname/ 194 is_1.pass.cpp: Windows locale names don't follow UNIX convention. 195 is_many.pass.cpp: idem. 196 narrow_1.pass.cpp: idem. 197 narrow_many.pass.cpp: idem. 198 scan_is.pass.cpp: idem. 199 scan_not.pass.cpp: idem. 200 tolower_1.pass.cpp: idem. 201 tolower_many.pass.cpp: idem. 202 toupper_1.pass.cpp: idem. 203 toupper_many.pass.cpp: idem. 204 types.pass.cpp: idem. 205 widen_1.pass.cpp: idem. 206 widen_many.pass.cpp: idem. 207 category.monetary/ 208 locale.money.get/ 209 locale.money.get.members/ 210 get_long_double_en_US.pass.cpp: Windows locale names don't follow UNIX convention. 211 get_long_double_fr_FR.pass.cpp: idem. 212 get_long_double_ru_RU.pass.cpp: idem. 213 get_long_double_zh_CN.pass.cpp: idem. 214 get_string_en_US.pass.cpp: idem. 215 locale.money.put/ 216 locale.money.put.members/ 217 put_long_double_en_US.pass.cpp: Windows locale names don't follow UNIX convention. 218 put_long_double_fr_FR.pass.cpp: idem. 219 put_long_double_ru_RU.pass.cpp: idem. 220 put_long_double_zh_CN.pass.cpp: idem. 221 put_string_en_US.pass.cpp: idem. 222 locale.moneypunct.byname/ 223 curr_symbol.pass.cpp: Failed constructing from C locale. Needs investigation. 224 decimal_point.pass.cpp: idem. 225 frac_digits.pass.cpp: idem. 226 grouping.pass.cpp: idem. 227 neg_format.pass.cpp: idem. 228 negative_sign.pass.cpp: idem. 229 pos_format.pass.cpp: idem. 230 positive_sign.pass.cpp: idem. 231 thousands_sep.pass.cpp: idem. 232 category.numeric/ 233 locale.nm.put/ 234 facet.num.put.members/ 235 put_double.pass.cpp: idem. (different floating point format?) 236 put_long_double.pass.cpp: idem. 237 put_pointer.pass.cpp: idem. 238 locale.num.get/ 239 facet.num.get.members/ 240 get_double.pass.cpp: Needs investigating. 241 get_float.pass.cpp: idem. 242 get_long_double.pass.cpp: idem. 243 get_pointer.pass.cpp: idem. 244 category.time/ 245 locale.time.get/ 246 locale.time.get.byname/ 247 date_order.pass.cpp: Windows locale names don't follow UNIX convention. 248 date_order_wide.pass.cpp: idem. 249 get_date.pass.cpp: idem. 250 get_date_wide.pass.cpp: idem. 251 get_monthname.pass.cpp: idem. 252 get_monthname_wide.pass.cpp: idem. 253 get_one.pass.cpp: idem. 254 get_one_wide.pass.cpp: idem. 255 get_time.pass.cpp: idem. 256 get_time_wide.pass.cpp: idem. 257 get_weekday.pass.cpp: idem. 258 get_weekday_wide.pass.cpp: idem. 259 get_year.pass.cpp: idem. 260 get_year_wide.pass.cpp: idem. 261 locale.time.put/ 262 locale.time.put.members/ 263 put1.pass.cpp: Needs investigating. 264 put2.pass.cpp: idem. 265 locale.time.put.byname/ 266 put1.pass.cpp: Windows locale names don't follow UNIX convention. 267 facet.numpunct/ 268 locale.numpunct/ 269 locale.numpunct.byname/ 270 decimal_point.pass.cpp: Failed constructing from C locale. Needs investigation. 271 grouping.pass.cpp: idem. 272 thousands_sep.pass.cpp: idem. 273 locale.stdcvt/ 274 codecvt_utf16_in.pass.cpp: 0x40003 does not fit in a 2-byte wchar_t. 275 codecvt_utf16_out.pass.cpp: idem. 276 codecvt_utf8_in.pass.cpp: idem. 277 codecvt_utf8_out.pass.cpp: idem. 278 codecvt_utf8_utf16_in.pass: idem. 279 codecvt_utf8_utf16_out.pass.cpp: idem. 280 locales/ 281 locale/ 282 locale.cons/ 283 assign.pass.cpp: Windows locale names don't follow UNIX convention. 284 char_pointer.pass.cpp: idem. 285 copy.pass.cpp: idem. 286 default.pass.cpp: idem. 287 locale_char_pointer_cat.pass.cpp: idem. 288 locale_facetptr.pass.cpp: idem. 289 locale_locale_cat.pass.cpp: idem. 290 locale_string_cat.pass.cpp: idem. 291 string.pass.cpp: idem. 292 locale.members/ 293 name.pass.cpp: Windows locale names don't follow UNIX convention. 294 locale.operators/ 295 eq.pass.cpp: Windows locale names don't follow UNIX convention. 296 locale/locale.statics/ 297 classic.pass.cpp: Failed constructing from C locale. Needs investigation. 298 global.pass.cpp: Windows locale names don't follow UNIX convention. 299 locale.convenience/ 300 conversions/ 301 conversions.buffer/ 302 overflow.pass.cpp: Needs investigation. 303 pbackfail.pass.cpp: idem. 304 seekoff.pass.cpp: idem. 305 test.pass.cpp: idem. 306 underflow.pass.cpp: idem. 307 conversions.string/ 308 converted.pass.cpp: out of range hex sequence due to 2-byte wchar_t. 309 from_bytes.pass.cpp: idem (This test passed while it probably shouldn't!). 310 to_bytes.pass.cpp: idem. 311 numerics/ 312 complex.number/ 313 complex.value.ops/ 314 abs.pass.cpp: Failed assertion. 315 arg.pass.cpp: idem. 316 rand/ 317 rand.device/ 318 ctor.pass.cpp: No such thing as /dev/urandom on Windows. Need alternative. 319 entropy.pass.cpp: idem. 320 eval.pass.cpp: idem. 321 rand.dis/ 322 rand.dist.bern/ 323 rand.dist.bern.bernoulli/ 324 io.pass.cpp: Needs investigation. (different output double format?) 325 rand.dist.bern.bin/ 326 io.pass.cpp: Needs investigation. (different output double format?) 327 rand.dist.bern.geo/ 328 io.pass.cpp: Needs investigation. (different output double format?) 329 rand.dist.bern.negbin/ 330 io.pass.cpp: Needs investigation. (different output double format?) 331 rand.dist.norm/ 332 rand.dist.norm.cauchy/ 333 io.pass.cpp: Needs investigation. (different output double format?) 334 rand.dist.norm.chisq/ 335 io.pass.cpp: Needs investigation. (different output double format?) 336 rand.dist.norm.norm.f/ 337 io.pass.cpp: Needs investigation. (different output double format?) 338 rand.dist.norm.lognormal/ 339 io.pass.cpp: Needs investigation. (different output double format?) 340 rand.dist.norm.normal/ 341 io.pass.cpp: Needs investigation. (different output double format?) 342 rand.dist.norm.t/ 343 io.pass.cpp: Needs investigation. (different output double format?) 344 rand.dist.pois/ 345 rand.dist.pois.exp/ 346 io.pass.cpp: Needs investigation. (different output double format?) 347 rand.dist.pois.extreme/ 348 io.pass.cpp: Needs investigation. (different output double format?) 349 rand.dist.pois.gamma/ 350 io.pass.cpp: Needs investigation. (different output double format?) 351 rand.dist.pois.poisson/ 352 io.pass.cpp: Needs investigation. (different output double format?) 353 rand.dist.pois.weibull/ 354 io.pass.cpp: Needs investigation. (different output double format?) 355 rand.dist.samp/ 356 rand.dist.samp.discrete/ 357 io.pass.cpp: Needs investigation. (different output double format?) 358 rand.dist.samp.pconst/ 359 io.pass.cpp: Needs investigation. (different output double format?) 360 rand.dist.samp.plinear/ 361 io.pass.cpp: Needs investigation. (different output double format?) 362 rand.dist.uni/ 363 rand.dist.uni.real/ 364 io.pass.cpp: Needs investigation. (different output double format?) 365 re/ 366 re.alg/ 367 re.alg.match/ 368 awk.pass.cpp: Needs investigation. 369 basic.pass.cpp: idem. 370 ecma.pass.cpp: idem. 371 extended.pass.cpp: idem. 372 re.alg.search/ 373 awk.pass.cpp: Needs investigation. 374 basic.pass.cpp: idem. 375 ecma.pass.cpp: idem. 376 extended.pass.cpp: idem. 377 re.regex/ 378 re.regex.locale/ 379 imbue.pass.cpp: Windows locale names don't follow UNIX convention. 380 re.traits/ 381 default.pass.cpp: Windows locale names don't follow UNIX convention. 382 getloc.pass.cpp: idem. 383 imbue.pass.cpp: idem. 384 isctype.pass.cpp: Needs investigation. 385 lookup_classname.pass.cpp: idem. 386 lookup_collatename.pass.cpp: Windows locale names don't follow UNIX convention. 387 transform.pass.cpp: idem. 388 transform_primary.pass.cpp: idem 389 translate_nocase.pass.cpp: Needs investigation. 390 strings/ 391 c.strings/ 392 cuchar.pass.cpp: see previous note about uchar.h. 393 cwchar.pass.cpp: I suggest including the win32 support header which defines 394 (v)swprintf to the Windows equivalent. 395 version_cuchar.pass.cpp: see previous note about uchar.h. 396 string.conversions/ 397 stod.pass.cpp: "no conversion". Needs investigation. 398 stof.pass.cpp: idem. 399 to_string.pass.cpp: Needs investigation. 400 to_wstring.pass.cpp: idem. 401 thread/ 402 futures/ 403 futures.async/ 404 async.pass.cpp: Needs investigation. 405 futures.promise/ 406 alloc_ctor.pass.cpp: Needs investigation. 407 default.pass.cpp: idem. 408 dtor.pass.cpp: idem. 409 get_future.pass.cpp: idem. 410 move_assign.pass.cpp: idem. 411 move_ctor.pass.cpp: idem. 412 set_exception.pass.cpp: idem. 413 set_exception_at_thread_exit.pass.cpp: idem. 414 set_lvalue.pass.cpp: idem. 415 set_lvalue_at_thread_exit.pass.cpp: idem. 416 set_rvalue.pass.cpp: idem. 417 set_rvalue_at_thread_exit.pass.cpp: idem. 418 set_value_at_thread_exit_const.pass.cpp: idem. 419 set_value_at_thread_exit_void.pass.cpp: idem. 420 set_value_const.pass.cpp: idem. 421 set_value_void.pass.cpp: idem. 422 swap.pass.cpp: idem. 423 futures.shared_future/ 424 copy_assign.pass.cpp: Needs investigation. 425 copy_ctor.pass.cpp: idem. 426 ctor_future.pass.cpp: idem. 427 dtor.pass.cpp: idem. 428 get.pass.cpp: idem. 429 move_assign.pass.cpp: idem. 430 move_ctor.pass.cpp: idem. 431 wait.pass.cpp: idem. 432 wait_for.pass.cpp: idem. 433 wait_until.pass.cpp: idem. 434 futures.tas/ 435 futures.task.members/ 436 assign_move.pass.cpp: Needs investigation. 437 ctor_func.pass.cpp: idem. 438 ctor_func_alloc.pass.cpp: idem. 439 ctor_move.pass.cpp: idem. 440 dtor.pass.cpp: idem. 441 get_future.pass.cpp: idem. 442 make_ready_at_thread_exit.pass.cpp: idem. 443 operator.pass.cpp: idem. 444 reset.pass.cpp: idem. 445 swap.pass.cpp: idem. 446 futures.task.nonmembers/ 447 swap.pass.cpp: Needs investigation. 448 futures.unique_future/ 449 dtor.pass.cpp: Needs investigation. 450 get.pass.cpp: idem. 451 move_assign.pass.cpp: idem. 452 move_ctor.pass.cpp: idem. 453 share.pass.cpp: idem. 454 wait.pass.cpp: idem. 455 wait_for.pass.cpp: idem. 456 wait_until.pass.cpp: idem. 457 thread.condition/ 458 thread.condition.condvar/ 459 wait_for.pass.cpp: Needs investigation. 460 thread.condition.condvarany/ 461 wait_for.pass.cpp: Needs investigation. 462 thread.mutex/ 463 thread.lock/ 464 thread.lock.unique/ 465 thread.lock.unique.cons/ 466 mutex_try_to_lock.pass.cpp: Needs investigation. 467 thread.threads/ 468 thread.thread.class/ 469 thread.thread.constr/ 470 move.pass.cpp: Needs investigation. 471 thread.thread.id/ 472 join.pass.cpp: Needs investigation. 473 thread.thread.static/ 474 hardware_concurrency.pass.cpp: Needs investigation. 475 utilities/ 476 meta/ 477 meta.trans/ 478 meta.trans.other/ 479 aligned_storage.pass.cpp: Probably due to sizeof(long) != 8. 480 meta.trans.sign/ 481 make_signed.pass.cpp: Probably due to sizeof(wchar_t) != 4. 482 make_unsigned.pass.cpp: idem. 483 meta.unary.prop.query/ 484 alignment_of.pass.cpp: Probably a Clang problem on Windows. 485 </pre> 486 </body> 487 </html> 488