]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - www/results.Windows.html
Vendor import of libc++ release_39 branch r287912:
[FreeBSD/FreeBSD.git] / www / results.Windows.html
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>