Hi,
On 01/12/15 19:35, "git-buildpackage on behalf of Guido Günther" <[email protected] on behalf of [email protected]> wrote: >Hi Markus, >On Mon, Nov 30, 2015 at 09:51:24AM +0200, Markus Lehtonen wrote: >> Hi, >> >> >> >> On 27/11/15 17:38, "Guido Günther" <[email protected]> wrote: >> >> >Hi Markus, >> >On Fri, Nov 27, 2015 at 04:43:56PM +0200, Markus Lehtonen wrote: >> >[..snip..] >> >> > > and I think we >> >> > > need to rethink the strategy for this submodule. For the deb component >> >> > > tests I'm keeping everything in HEAD and set up everything from >> >> > > there. The rpm tests need different commits to function which >> >> > > causes/caused >> >> > > some breakackge here when pulling in more component tests so I think >> >> > > we >> >> > > would be better of needing only a single commit like in the deb >> >> > > case. Would that be doable? >> >> > >> >> > I haven't figured out any better way – although I admit that this is not >> >> > the most elegant solution. The other branches in the testdata repository >> >> > basically represent various test packages (i.e. test repositories can be >> >> > constructed from those). I didn't find any nice and easy way to >> >> > serialize the test repositories (to construct them at test time) either. >> >> > And additional git submodules (per-testpackage submodule) don't work >> >> > either because the test repositories usually require multiple branches >> >> > (upstream, packaging, pristine-tar) and this is not supported in git >> >> > submodules which work on single HEAD commit. Better ideas are welcome, >> >> > of course. >> >> >> >> I played around with one idea I had earlier and came up with a solution >> >> to the problem of storing test package git repositories. Please see the >> >> 'feature/component-tests' branch in my Github repository >> >> https://github.com/marquiz/git-buildpackage-rpm >> >> >> >> Now, all test data is available in submodule 'HEAD' - test package git >> >> repositories are serialized as patches (and some additional data) in >> >> separate subdiretories. The branch also contains two patches for >> >> buildpackage-rpm (cherry-picked from the 'feature/buildpackage-rpm' >> >> branch) that are needed for the buildpackage-rpm unit tests to pass. It >> >> also contains one "optional" patch that makes names of the per-testcase >> >> temporary directories more user friendly. >> > >> >Awesome! This makes the rpm and deb component tests use the same >> >"strategy" (the rpm ones being far more complete). Running the tests >> >fails on me with: >> > >> >nosetests -x >> >ERROR: Basic test of native pkg >> >---------------------------------------------------------------------- >> >Traceback (most recent call last): >> > File >> > "/var/scratch/src/git-buildpackage/git-buildpackage/tests/component/rpm/test_buildpackage_rpm.py", >> > line 116, in test_native_build >> > self.init_test_repo('gbp-test-native') >> > File >> > "/var/scratch/src/git-buildpackage/git-buildpackage/tests/component/rpm/__init__.py", >> > line 58, in init_test_repo >> > dirname = os.path.basename(cls.orig_repos[pkg_name].path) >> >KeyError: 'gbp-test-native' >> > >> >though. This is the first error. I have the full log attached. >> >> Oh, sorry, there was erroneous glob in my patch. I pushed a fixed version >> into my branch. It should work now, please test. > > >Down to one failure now after merging features/component-tests > >.....................E................................................................................................................................................................................................................... >====================================================================== >ERROR: Create an upstream zip archive >---------------------------------------------------------------------- >Traceback (most recent call last): > File "/usr/lib/python2.7/dist-packages/nose/case.py", line 197, in runTest > self.test(*self.arg) > File > "/var/scratch/src/git-buildpackage/git-buildpackage/tests/04_test_submodules.py", > line 136, in test_create_zip_archives > '', '', '', 'zip') > File > "/var/scratch/src/git-buildpackage/git-buildpackage/gbp/scripts/common/buildpackage.py", > line 82, in git_archive_submodules > CatenateZipArchive(main_archive)(submodule_archive) > File > "/var/scratch/src/git-buildpackage/git-buildpackage/gbp/command_wrappers.py", > line 299, in __call__ > Command.__call__(self, [target]) > File > "/var/scratch/src/git-buildpackage/git-buildpackage/gbp/command_wrappers.py", > line 146, in __call__ > raise CommandExecFailed(self._format_err()) >CommandExecFailed: Couldn't append "/tmp/tmpKHcFcV/submodule.zip" to >"/tmp/tmpKHcFcV/main.zip": execution failed: [Errno 2] No such file or >directory >-------------------- >> begin captured logging << -------------------- >gbp: ERROR: Couldn't append "/tmp/tmpKHcFcV/submodule.zip" to >"/tmp/tmpKHcFcV/main.zip": execution failed: [Errno 2] No such file or >directory >--------------------- >> end captured logging << --------------------- > >---------------------------------------------------------------------- Hmm, this must be because you do not have zipmerge installed. I changed the "common/buildpackage: support for different archive formats" patch in my branch so that zipmerge is now part of Build-Depends >> >Two further things: >> > >> >* please add gbp_*/ to .gitignore in the data repo so we don't get any >> > untracked content after running the tests. >> >> Hmm, no gbp_* temporary directories should be created under the data >> (tests/component/rpm/data) directory. They should be created in the >> cwd of the user which should be topdir of gbp. > ># git status >On branch locals/rpm-testdata >Changes not staged for commit: > (use "git add <file>..." to update what will be committed) > (use "git checkout -- <file>..." to discard changes in working directory) > (commit or discard the untracked or modified content in submodules) > > modified: tests/component/rpm/data (untracked content) > >cd tests/component/rpm/data/ >$ git status >HEAD detached at 09a446d >Untracked files: > (use "git add <file>..." to include in what will be committed) > > gbp_TestGbpRpm_smDdsW/ > gbp_TestGbpRpm_wKF6Z3/ > gbp_TestPqRpm_UOAsQW/ > >nothing added to commit but untracked files present (use "git add" to track) > >Adding gbp_* to .gitignore in that repo would fix this. I think those must be leftovers from my previous erroneous patch. The tests should not contaminate the testdata submodule - if it does something is wrong. Thus, I would not like to add that to .gitignore as it may shadow some problems. >> >* It seems manage.py uses lots of code from gbp. Wouldn't it be better >> > to reuse this. We can do this at a later time though, having the test >> > data for the component tests correct is much more important. >> >> Yeah, there's a lot of similar code - doing similar things, variable names >> etc (although it's technically written from scratch). A lot of it is copied >> from my previous 'bootstrap.py' from the same repository. I specifically >> wrote it independently, in order to cut the circular dependency between the >> data repository and gbp api. The amount of overlapping code is not that big >> IMO, although there is more than I probably anticipated, initially. We can >> revisit this later, if needed. >> >> >> >> If you're not going to merge this in the near future, please update the >> >> rpm test data submodule into a valid commit. Currently, it points into >> >> some local commit of yours or something as I pointed out in my earlier >> >> email. >> > >> >I'd be happy to pull this in in general. There are some details with >> > >> > common/buildpackage: support for different archive formats >> > >> >which I need to work out but that can be done afterwards as well. >> >> Is there something specific? At least it shouldn't affect (deb >> )buildpackage at all because zip archives are not supported there. > >Mostly misreading the code on my end too early in the morning. I'll have >to run the performance tests to see if git_archive_submodules regresses >once merged but that should be about it. OK. Thanks, Markus _______________________________________________ git-buildpackage mailing list [email protected] http://lists.sigxcpu.org/mailman/listinfo/git-buildpackage
