Opened 9 years ago

Last modified 9 years ago

#22 new defect

XPCOM or VBOX 'Main' API testcases hang on startup

Reported by: Valery V. Sedletski Owned by: Valery V. Sedletski
Priority: major Milestone: VBox driver
Component: Frontends Keywords:
Cc:

Description

The programs using XPCOM (XPCOM or VBox 'Main' API testcases) stick on XPCOM init. This is for majority of such programs. The exception is VBoxHeadless VBox frontend. It starts successfuly (The VM is running as intended, if look into VBox logs).

Change History (6)

comment:1 by Valery V. Sedletski, 9 years ago

This is because the location of XPCOM programs should be in "bin" directory, not in "bin\testcase". So, the XPCOM/Main testcases should be copied to "bin". Otherwise, "bin\cpmponents" subdir (and, maybe, something else) will not be found, so it will fail.

comment:2 by dmik, 9 years ago

And what is the exact reason of the hang itself? A missing directory per se can't be the hang reason... We should fix the hang and give an error message instead. Also, we may instruct test cases look in ../components instead of just ./components to avoid moving them to bin — as an option. What do other linux platform do there? They should have exactly the same problem because they also use XPCOM...

comment:3 by Valery V. Sedletski, 9 years ago

This is what the debug build writes (a failed assertion):

N:\src\vbox\out\os2.x86\debug\bin>testcase\tstVBoxAPI.exe
tstVBoxAPI: TESTING...
No Persistent Registry Found.
Type Manifest File: N:\SRC\VBOX\OUT\OS2.X86\DEBUG\BIN\TESTCASE\components\xpti.dat
###!!! ASSERTION: Failed to write xpti manifest!: 'Error', file N:/src/vbox/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiInterfa
ceInfoManager.cpp, line 1937
nsNativeComponentLoader: autoregistering begins.
nsNativeComponentLoader: autoregistering FAILED
nsNativeComponentLoader: autoregistering begins.
nsNativeComponentLoader: autoregistering FAILED

!!Assertion Failed!!
Expression: SUCCEEDED (rc)
Location  : N:/src/vbox/src/VBox/Main/glue/initterm.cpp(502) nsresult com::Initialize(bool)
COM RC = NS_ERROR_FILE_NOT_FOUND (0x80520012)

On "release" build it just sticks on com::Initialize(). Unfortuantely, I don't have Linux now -- windows XP only. But winXP is a special case. So, I cannot easily check that now (Linux and main data partition are lost because of a bad sector put on EBR :()

Also, I tried to start testcases from bin, and start them as

testcase\tstVBoxAPI.exe

so the result is still as above -- it probably, checks the test binary directory but not a current dir, and searches for ./components relatively to it.

comment:4 by dmik, 9 years ago

Milestone: VBox driverpreview

comment:5 by Valery V. Sedletski, 9 years ago

Testcases are not so urgent for preview, so I move it to the next milestone.

comment:6 by Valery V. Sedletski, 9 years ago

Milestone: previewVBox driver
Note: See TracTickets for help on using tickets.