Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-dev] Long path names in Tycho integration test execution

On 12-08-24 8:45 AM, Oberlies, Tobias wrote:
Igor Fedorenko wrote:
Adding parameter to getVerifier is unlikely to solve the problem. I
will ask for per-test-method project basedir as a matter of course
for the tests I write, this will break on windows in some/many
cases, and we'll have to negotiate each test. Not fun.
The default would be to use a basedir that is only based on the
project name. And in the cases where this isn't enough, e.g. because
the same project is used by multiple tests, you could add an extra
name segment (e.g. a number). Then the paths would still be short
enough for Windows.

How many tests fail due to long path names?

I also remember that at least some windows flavours supported 32K
long names. Is there no way to use this from Java? I mean, it's
2012 if my linux calendar is to trust, restricting names to <300 is
kinda odd :-)
I looked a little further into this and it is... *drum roll*...
java.exe that causes the problem. In case the support for
meta-requirements/custom touchpoints is activated, the DirectorMojo
forks a java process. That process fails with "Unable to access
jarfile" because the JAR file path is too long. I can convince the
java.exe to take the long path by calling "java.exe -jar \\?\<long
path name>" (which is the syntax for long path names in the Windows
API), but having to specify this myself seems like a hack. >

We can make this part of plexus-util Commandline. wdyt?




On 12-08-24 7:02 AM, Oberlies, Tobias wrote:
I'm running the Tycho integration test (for qualification of my own
commits) on my development PC, which is running Windows. I'm seeing
problems with long path names, and I've identified removing the "<class
name>/<method name>/" in the path generated by getVerifier as a
candidate for addressing this problem.
@Igor: You explicitly introduced the "<class name>/<method name>/" in
commit _943d074359265c050e5da6aec1d18cd75cd07c51_

Do you remember which tests need this change?
In the same change, you touched the tests
RecoveryAfterCorruptArtifactDownloadsTest and
TargetRestrictionThroughTargetFilesTest and both use the same test
project twice, but the former does this in the same test method, so
there is no gain.
How about adding an extra parameter to getVerifier instead that allows
to insert something in the path in the target folder instead?

tycho-dev mailing list

tycho-dev mailing list
tycho-dev mailing list

Back to the top