Home - Summaries: (main) : (py3.11) : Everything - Nightly builds - Benchmarks - RPython - Builders - About

translator/platform/test/test_windows.py::TestMakefile::()::test_manifest

self = <rpython.translator.platform.test.test_windows.TestMakefile object at 0x0000029a36580218>

    def test_manifest(self):
    
        class Translation():
            icon = None
            manifest = os.path.join(os.path.dirname(__file__),
                                    'data', 'python.manifest')
    
        class Config():
            translation = Translation()
    
        tmpdir = udir.join('test_manifest').ensure(dir=1)
        cfile = tmpdir.join('pypy_main.c')
        cfile.write('''
            #include <stdio.h>
            __declspec(dllexport) int pypy_main_startup(int argc, wchar_t* argv[])
            {
                int x = 10;
                int y = x * 2;
                printf("%d\\n", y);
                return 0;
            }
            ''')
        mk = self.platform.gen_makefile([cfile],
                                        ExternalCompilationInfo(),
                                        path=tmpdir,
                                        shared=True,
                                        config = Config(),
                                       )
        mk.write()
>       self.platform.execute_makefile(mk)

translator\platform\test\test_windows.py:102: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
translator\platform\windows.py:570: in execute_makefile
    self._handle_error(returncode, stdout, stderr, path.join('make'))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <MsvcPlatform cc=cl.exe>, returncode = 2
stdout = "\techo typedef unsigned short ARGV_T; int pypy_main_startup(int, ARGV_T*[]); int wmain(int argc, ARGV_T* argv[]) { re...est\\usession-main-2114\\test_manifest\\vc140.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS\r\n"
stderr = '\techo typedef unsigned short ARGV_T; int pypy_main_startup(int, ARGV_T*[]); int wmain(int argc, ARGV_T* argv[]) { re...file, please use /FS\r\njom: d:\\systemtemp\\pytest\\usession-main-2114\\test_manifest\\Makefile [wmain.obj] Error 2\n'
outname = local('d:\\systemtemp\\pytest\\usession-main-2114\\test_manifest\\make')

    def _handle_error(self, returncode, stdout, stderr, outname):
        if returncode != 0:
            # Microsoft compilers write compilation errors to stdout
            stderr = stdout + stderr
            errorfile = outname.new(ext='errors')
            errorfile.write(stderr, mode='wb')
            if self.log_errors:
                stderrlines = stderr.splitlines()
                for line in stderrlines:
                    log.Error(line)
                # ^^^ don't use ERROR, because it might actually be fine.
                # Also, ERROR confuses lib-python/conftest.py.
>           raise CompilationError(stdout, stderr)
E           CompilationError: CompilationError(err="""
E           		echo typedef unsigned short ARGV_T; int pypy_main_startup(int, ARGV_T*[]); int wmain(int argc, ARGV_T* argv[]) { return pypy_main_startup(argc, argv); } > main.c
E           		echo #define WIN32_LEAN_AND_MEAN > wmain.c.tmp
E           		echo #include "stdlib.h" >> wmain.c.tmp
E           		cl.exe /nologo /MD  /O2  /FS  /Zi  /Fopypy_main.obj /c pypy_main.c 
E           	pypy_main.c
E           		cl.exe /nologo /MD  /O2  /FS  /Zi  /Fomain.obj /c main.c 
E           	main.c
E           		link.exe /dll  /nologo  /debug  /LARGEADDRESSAWARE  /STACK:3145728  /MANIFEST:EMBED  /opt:noicf   /out:libpypy_main.dll  kernel32.lib pypy_main.obj
E           	   Creating library libpypy_main.lib and object libpypy_main.exp
E           		echo #include "windows.h" >> wmain.c.tmp
E           		echo int pypy_main_startup(int, wchar_t*[]); >> wmain.c.tmp
E           		echo int WINAPI wWinMain( >> wmain.c.tmp
E           		echo     HINSTANCE hInstance,      /* handle to current instance */ >> wmain.c.tmp
E           		echo     HINSTANCE hPrevInstance,  /* handle to previous instance */ >> wmain.c.tmp
E           		echo     LPWSTR lpCmdLine,         /* pointer to command line */ >> wmain.c.tmp
E           		echo     int nCmdShow              /* show state of window */ >> wmain.c.tmp
E           		echo ) >> wmain.c.tmp
E           		echo { return pypy_main_startup(__argc, __wargv); } >> wmain.c.tmp
E           		move wmain.c.tmp wmain.c
E           	        1 file(s) moved.
E           		link.exe /DEBUG /LARGEADDRESSAWARE /STACK:3145728 main.obj libpypy_main.lib /MANIFEST:EMBED /MANIFESTINPUT:pypy.manifest /out:pypy_main.exe
E           	Microsoft (R) Incremental Linker Version 14.41.34123.0
E           	Copyright (C) Microsoft Corporation.  All rights reserved.
E           	
E           		cl.exe /nologo /MD  /O2  /FS  /Zi  /Fowmain.obj /c wmain.c 
E           	wmain.c
E           	wmain.c: fatal error C1041: cannot open program database 'd:\systemtemp\pytest\usession-main-2114\test_manifest\vc140.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS
E           	jom: d:\systemtemp\pytest\usession-main-2114\test_manifest\Makefile [wmain.obj] Error 2
E           	""")

translator\platform\windows.py:315: CompilationError
---------- Captured stderr call ----------
[platform:execute] jom.exe  in d:\systemtemp\pytest\usession-main-2114\test_manifest
[platform:Error] 	echo typedef unsigned short ARGV_T; int pypy_main_startup(int, ARGV_T*[]); int wmain(int argc, ARGV_T* argv[]) { return pypy_main_startup(argc, argv); } > main.c
[platform:Error] 	echo #define WIN32_LEAN_AND_MEAN > wmain.c.tmp
[platform:Error] 	echo #include "stdlib.h" >> wmain.c.tmp
[platform:Error] 	cl.exe /nologo /MD  /O2  /FS  /Zi  /Fopypy_main.obj /c pypy_main.c
[platform:Error] pypy_main.c
[platform:Error] 	cl.exe /nologo /MD  /O2  /FS  /Zi  /Fomain.obj /c main.c
[platform:Error] main.c
[platform:Error] 	link.exe /dll  /nologo  /debug  /LARGEADDRESSAWARE  /STACK:3145728  /MANIFEST:EMBED  /opt:noicf   /out:libpypy_main.dll  kernel32.lib pypy_main.obj
[platform:Error]    Creating library libpypy_main.lib and object libpypy_main.exp
[platform:Error] 	echo #include "windows.h" >> wmain.c.tmp
[platform:Error] 	echo int pypy_main_startup(int, wchar_t*[]); >> wmain.c.tmp
[platform:Error] 	echo int WINAPI wWinMain( >> wmain.c.tmp
[platform:Error] 	echo     HINSTANCE hInstance,      /* handle to current instance */ >> wmain.c.tmp
[platform:Error] 	echo     HINSTANCE hPrevInstance,  /* handle to previous instance */ >> wmain.c.tmp
[platform:Error] 	echo     LPWSTR lpCmdLine,         /* pointer to command line */ >> wmain.c.tmp
[platform:Error] 	echo     int nCmdShow              /* show state of window */ >> wmain.c.tmp
[platform:Error] 	echo ) >> wmain.c.tmp
[platform:Error] 	echo { return pypy_main_startup(__argc, __wargv); } >> wmain.c.tmp
[platform:Error] 	move wmain.c.tmp wmain.c
[platform:Error]         1 file(s) moved.
[platform:Error] 	link.exe /DEBUG /LARGEADDRESSAWARE /STACK:3145728 main.obj libpypy_main.lib /MANIFEST:EMBED /MANIFESTINPUT:pypy.manifest /out:pypy_main.exe
[platform:Error] Microsoft (R) Incremental Linker Version 14.41.34123.0
[platform:Error] Copyright (C) Microsoft Corporation.  All rights reserved.
[platform:Error]
[platform:Error] 	cl.exe /nologo /MD  /O2  /FS  /Zi  /Fowmain.obj /c wmain.c
[platform:Error] wmain.c
[platform:Error] wmain.c: fatal error C1041: cannot open program database 'd:\systemtemp\pytest\usession-main-2114\test_manifest\vc140.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS
[platform:Error] jom: d:\systemtemp\pytest\usession-main-2114\test_manifest\Makefile [wmain.obj] Error 2
 (somefailed=True in translator/platform/test)
builder: rpython-win-x86-64 build #401
test: translator/platform/test/test_windows/py/TestMakefile/()/test_manifest