Skip to content

Commit 0dcbb3a

Browse files
committed
all: fix more tests
1 parent a2be374 commit 0dcbb3a

11 files changed

Lines changed: 47 additions & 20 deletions

File tree

vlib/fasthttp/fasthttp_bsd.c.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ fn process_request(server Server, kq int, c_ptr voidptr, mut clients map[int]voi
336336
c.should_close = resp.should_close
337337
c.write_buf = resp.content.clone()
338338
if resp.file_path != '' {
339-
fd := C.open(resp.file_path.str, C.O_RDONLY)
339+
fd := C.open(resp.file_path.str, C.O_RDONLY, 0)
340340
if fd != -1 {
341341
mut st := C.stat{}
342342
if C.fstat(fd, &st) == 0 {

vlib/v/builder/cc.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ fn c_error_missing_library_name(c_output string) string {
270270
] {
271271
if line.contains(marker) {
272272
lib_name := line.all_after(marker).trim_space()
273-
return lib_name.all_before('`').all_before("'").all_before('"').all_before(' ')
273+
return lib_name.all_before('`').all_before("'").all_before('"').all_before(' ').all_before(':')
274274
}
275275
}
276276
}

vlib/v/builder/cc_test.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ fn main() {
398398
panic(err)
399399
}
400400
res :=
401-
os.execute('${os.quoted_path(@VEXE)} -dump-c-flags - -cc tcc -arch arm64 ${os.quoted_path(src_file)}')
401+
os.execute('${os.quoted_path(@VEXE)} -dump-c-flags - -os linux -cc tcc -arch arm64 ${os.quoted_path(src_file)}')
402402
assert res.exit_code == 0, res.output
403403
assert !res.output.contains('thirdparty/stdatomic/nix/atomic.S')
404404
assert res.output.contains('libatomic.so')

vlib/v/gen/c/cheaders.v

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -385,11 +385,16 @@ typedef int (*qsort_callback_func)(const void*, const void*);
385385
#define _TRUNCATE ((size_t)-1)
386386
#endif
387387
#elif defined(__MINGW32__) || defined(__MINGW64__) || (defined(__clang__) && (defined(_WIN32) || defined(_WIN64)))
388-
typedef struct _iobuf FILE;
389-
FILE* __cdecl __acrt_iob_func(unsigned index);
390-
#define stdin (__acrt_iob_func(0))
391-
#define stdout (__acrt_iob_func(1))
392-
#define stderr (__acrt_iob_func(2))
388+
#include <stdarg.h>
389+
#include <stdio.h>
390+
#include <stdlib.h>
391+
#include <string.h>
392+
#ifndef va_copy
393+
#define va_copy(dest, src) ((dest) = (src))
394+
#endif
395+
#ifndef _TRUNCATE
396+
#define _TRUNCATE ((size_t)-1)
397+
#endif
393398
#elif defined(__TINYC__) && (defined(_WIN32) || defined(_WIN64))
394399
#ifndef _FILE_DEFINED
395400
struct _iobuf {
@@ -476,7 +481,10 @@ typedef __builtin_va_list va_list;
476481
#define va_copy(dest, src) __builtin_va_copy(dest, src)
477482
#endif
478483
#endif
479-
#if !defined(_MSC_VER) || defined(__clang__)
484+
#if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__MINGW64__) && !(defined(__clang__) && (defined(_WIN32) || defined(_WIN64)))
485+
#ifdef __cplusplus
486+
extern "C" {
487+
#endif
480488
V_CRT_LINKAGE int V_CRT_CALL vfprintf(FILE *stream, const char *format, va_list ap);
481489
V_CRT_LINKAGE int V_CRT_CALL vsnprintf(char *str, size_t size, const char *format, va_list ap);
482490
V_CRT_LINKAGE int V_CRT_CALL fprintf(FILE *stream, const char *format, ...);
@@ -559,6 +567,9 @@ V_CRT_LINKAGE int V_CRT_CALL _wputenv(const unsigned short *envstring);
559567
V_CRT_LINKAGE int V_CRT_CALL _vscprintf(const char *format, va_list ap);
560568
V_CRT_LINKAGE int V_CRT_CALL _vsnprintf_s(char *buffer, size_t size, size_t count, const char *format, va_list ap);
561569
#endif
570+
#ifdef __cplusplus
571+
}
572+
#endif
562573
#endif
563574
#ifndef _IOFBF
564575
#define _IOFBF 0

vlib/v/gen/c/cheaders_manual_stdlib_decls_test.v

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ fn test_default_c_prelude_uses_manual_stdio_stdlib_string_and_stdarg_decls() {
3232
assert generated_c.contains('RAND_MAX = 2147483647'), generated_c
3333
assert generated_c.contains('V_CRT_LINKAGE double V_CRT_CALL atof(const char *str);'), generated_c
3434
assert generated_c.contains('extern FILE* stdout;'), generated_c
35-
assert generated_c.contains('#define stdout (__acrt_iob_func(1))'), generated_c
3635
assert generated_c.contains('#if defined(_MSC_VER) && !defined(__clang__)\n#include <stdarg.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>'), generated_c
3736
assert generated_c.contains('#if defined(_MSC_VER) && !defined(__clang__)\n\t#define V_CRT_LINKAGE __declspec(dllimport)\n\t#define V_CRT_CALL VCALLCONV(cdecl)\n#else\n\t#define V_CRT_LINKAGE\n\t#define V_CRT_CALL\n#endif'), generated_c
3837
assert generated_c.contains('V_CRT_LINKAGE int V_CRT_CALL _vscprintf(const char *format, va_list ap);'), generated_c
@@ -42,7 +41,7 @@ fn test_default_c_prelude_uses_manual_stdio_stdlib_string_and_stdarg_decls() {
4241
assert generated_c.contains('V_CRT_LINKAGE void V_CRT_CALL _aligned_free(void *memory);'), generated_c
4342
assert generated_c.contains('V_CRT_LINKAGE unsigned short * V_CRT_CALL _wgetenv(const unsigned short *varname);'), generated_c
4443
assert generated_c.contains('V_CRT_LINKAGE int V_CRT_CALL _wputenv(const unsigned short *envstring);'), generated_c
45-
assert generated_c.contains('#elif defined(__MINGW32__) || defined(__MINGW64__) || (defined(__clang__) && (defined(_WIN32) || defined(_WIN64)))\ntypedef struct _iobuf FILE;\nFILE* __cdecl __acrt_iob_func(unsigned index);\n#define stdin (__acrt_iob_func(0))\n#define stdout (__acrt_iob_func(1))\n#define stderr (__acrt_iob_func(2))'), generated_c
44+
assert generated_c.contains('#elif defined(__MINGW32__) || defined(__MINGW64__) || (defined(__clang__) && (defined(_WIN32) || defined(_WIN64)))\n#include <stdarg.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>'), generated_c
4645
assert generated_c.contains('#elif defined(__TINYC__) && (defined(_WIN32) || defined(_WIN64))'), generated_c
4746
assert generated_c.contains('#ifndef _FILE_DEFINED\nstruct _iobuf {\n\tchar *_ptr;\n\tint _cnt;\n\tchar *_base;\n\tint _flag;\n\tint _file;\n\tint _charbuf;\n\tint _bufsiz;\n\tchar *_tmpfname;\n};\ntypedef struct _iobuf FILE;\n#define _FILE_DEFINED'), generated_c
4847
assert generated_c.contains('FILE* __cdecl __iob_func(void);'), generated_c
@@ -72,7 +71,7 @@ fn test_msvc_windows_prelude_uses_msvc_crt_headers() {
7271
assert !generated_c.contains('#if defined(_MSC_VER) && !defined(__clang__)\ntypedef struct _iobuf FILE;'), generated_c
7372
assert generated_c.contains('#ifndef va_copy\n\t#define va_copy(dest, src) ((dest) = (src))\n#endif\n#ifndef _TRUNCATE'), generated_c
7473
assert generated_c.contains('#if defined(_MSC_VER) && !defined(__clang__)\n\t#define V_CRT_LINKAGE __declspec(dllimport)\n\t#define V_CRT_CALL VCALLCONV(cdecl)\n#else\n\t#define V_CRT_LINKAGE\n\t#define V_CRT_CALL\n#endif'), generated_c
75-
assert generated_c.contains('#if !defined(_MSC_VER) || defined(__clang__)\nV_CRT_LINKAGE int V_CRT_CALL vfprintf(FILE *stream, const char *format, va_list ap);'), generated_c
74+
assert generated_c.contains('#if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__MINGW64__) && !(defined(__clang__) && (defined(_WIN32) || defined(_WIN64)))\n#ifdef __cplusplus\nextern "C" {\n#endif\nV_CRT_LINKAGE int V_CRT_CALL vfprintf(FILE *stream, const char *format, va_list ap);'), generated_c
7675
assert generated_c.contains('V_CRT_LINKAGE int V_CRT_CALL _vscprintf(const char *format, va_list ap);'), generated_c
7776
assert generated_c.contains('V_CRT_LINKAGE int V_CRT_CALL _vsnprintf_s(char *buffer, size_t size, size_t count, const char *format, va_list ap);'), generated_c
7877
assert generated_c.contains('#include <windows.h>'), generated_c

vlib/v/gen/c/coutput_test.v

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,14 @@ fn should_skip(relpath string) bool {
533533
}
534534
}
535535
}
536+
if gcc_path == '' {
537+
test_path := os.join_path(testdata_folder, relpath)
538+
file_options := get_file_options(test_path)
539+
if file_options.vflags.contains('-cc gcc') {
540+
eprintln('> skipping ${relpath} since its vflags require gcc, which is not detected')
541+
return true
542+
}
543+
}
536544
return false
537545
}
538546

vlib/v/gen/c/testdata/windows_clang_bootstrap_regression.c.must_have

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
#if defined(_MSC_VER) && !defined(__clang__)
22
#include <stdio.h>
33
#elif defined(__MINGW32__) || defined(__MINGW64__) || (defined(__clang__) && (defined(_WIN32) || defined(_WIN64)))
4-
FILE* __cdecl __acrt_iob_func(unsigned index);
5-
#define stdout (__acrt_iob_func(1))
6-
#if !defined(_MSC_VER) || defined(__clang__)
4+
#if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__MINGW64__) && !(defined(__clang__) && (defined(_WIN32) || defined(_WIN64)))
75
int V_CRT_CALL _fileno(FILE *stream);
86
FILE * V_CRT_CALL _wfopen(const unsigned short *filename, const unsigned short *mode);
97
int V_CRT_CALL _vscprintf(const char *format, va_list ap);

vlib/v/gen/wasm/gen.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1743,7 +1743,7 @@ fn (mut g Gen) eval_enum_field_expr(expr ast.Expr) ?i64 {
17431743
return left % right
17441744
}
17451745
.left_shift {
1746-
return left << int(right)
1746+
return i64(u64(left) << int(right))
17471747
}
17481748
.right_shift {
17491749
return left >> int(right)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0000-00-00T00:00:00.000000000Z
1+
0000-01-01T00:00:00.000000000Z
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
No such file or directory; code: 2
1+
os: failed to find executable

0 commit comments

Comments
 (0)