summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.junit/src
Commit message (Collapse)AuthorAgeFilesLines
* Add support for clean filtersChristian Halstrick2015-11-271-0/+13
| | | | | | | | | When filters are defined for certain paths in gitattributes make sure that clean filters are processed when adding new content to the object database. Change-Id: Iffd72914cec5b434ba4d0de232e285b7492db868 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add missing @since tags and missing javadocMatthias Sohn2015-11-255-2/+32
| | | | Change-Id: I8575797127fc96abea8af56f019ca39f5897486f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Restore TestRepository.getClock(), it is used by Gerrit/GitilesTerry Parker2015-10-221-0/+11
| | | | | Change-Id: I88880f18998e33377c0c684cbd8007b5d27d76e7 Signed-off-by: Terry Parker <tparker@google.com>
* Push control of time into MockSystemReaderTerry Parker2015-10-203-25/+55
| | | | | | | | | | | LocalDiskRepositoryTestCase and TestRepository have competing ideas about time. Push them into MockSystemReader so they can cooperate. Rename getClock() methods that return Dates to getDate(). Change-Id: Ibbd9fe7f85d0064b0a19e3b675b9718a9e67c479 Signed-off-by: Terry Parker <tparker@google.com>
* Delete non empty directories before checkout a pathAndrey Loskutov2015-10-092-0/+13
| | | | | | | | | | If the checkout path is currently a non-empty directory (and was a link or a regular file before), this directory will be removed before performing checkout, but only if the checkout path is specified. Bug: 474973 Change-Id: Ifc6c61592d9b54d26c66367163acdebea369145c Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* [performance] Cache platform name in SystemReaderAndrey Loskutov2015-09-271-0/+18
| | | | | | | | | SystemReader.isMacOs() and SystemReader.isWindows() return values are unlikely to change during the JVM lifetime (except tests). Don't read system properties each time the methods are called, just use previously calculated value. Change-Id: I495521f67a8b544e7b7247d99bbd05a42ea16d20 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* Move `RepositoryTestCase.indexState` to parent classChris Price2015-07-102-106/+100
| | | | | | | | | | | | | | | The test helper method `indexState` in `RepositoryTestCase` is very useful for writing tests, even in cases where we need to do things like create more than one repository for a test and thus we don't want to use the built-in `db` member variable that exists in `RepositoryTestCase`. Since the method is static, we can move it up to the parent class `LocalDiskRepositoryTestCase`, where it can be used by tests that aren't a great fit for inheriting directly from `RepositoryTestCase`. Bug: 436200 Change-Id: I2b6de75c001d2d77ddb607488af246548784a67f Signed-off-by: Chris Price <chris@puppetlabs.com>
* Change `indexState` to static methodChris Price2015-07-101-1/+1
| | | | | | | | | The `indexState` method is no longer referring to any member variables from the class, so it can be made static. Bug: 436200 Change-Id: I013316de5c373417ea758ca6e17da29209fead53 Signed-off-by: Chris Price <chris@puppetlabs.com>
* Use local variable in RepositoryTestCase.indexStateChris Price2015-07-071-1/+1
| | | | | | | | | | | | | | | | | There is a signature of the test helper method `indexState`, in `RepositoryTestCase`, that accepts a `Repository` object as an argument. However, there was one line of code where this variable was not being used, and the method was instead referring to a member variable `db`. I believe this was probably just an oversight in a previous refactor, and that the correct behavior is to use the variable from the argument list. This change also has the benefit of making it possible to convert this method to a static method, since it no longer relies on any state from the class. Bug: 436200 Change-Id: Iac95b046dc5bd0b3756642e241c3637f1fad3609 Signed-off-by: Chris Price <chris@puppetlabs.com>
* Replace deprecated release() methods by close()Matthias Sohn2015-05-211-27/+29
| | | | | | | | See the discussion [1] in the Gerrit mailing list. [1] https://groups.google.com/forum/#!topic/repo-discuss/RRQT_xCqz4o Change-Id: I2c67384309c5c2e8511a7d0d4e088b4e95f819ff Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* TestRepository: Add a cherryPick methodDave Borowitz2015-03-231-0/+62
| | | | | | | | | | CherryPickCommand only works on a non-bare repository, as it must modify the working tree and index in case of a merge conflict. In tests, being able to recover from a merge conflict is less important, as the caller should be able to control the full contents of files in advance of the cherry-pick. Change-Id: Ic332e44df1308b9336e884666b08c1f6db64513d
* TestRepository: Expose a Git instanceDave Borowitz2015-03-181-0/+12
| | | | Change-Id: I2fab7dd9a24205686db4724e77c0fd0a28f2075e
* TestRepository: Allow setting explicit Change-IdDave Borowitz2015-03-121-9/+22
| | | | | | | This includes both leaving existing Change-Ids alone (as, for example Gerrit's commit-msg hook does) and programmatically setting a value. Change-Id: Iaaffb0107ae27de24df1f0e95a8d628fb8ea5364
* TestRepository: Ignore existing Change-Id in messageDave Borowitz2015-03-121-0/+4
| | | | Change-Id: I343c3065fa369ef8aab2b033ac1e392b28d10daf
* TestRepository: Support committing to unborn symrefDave Borowitz2015-03-121-2/+1
| | | | Change-Id: I6bcee635adda7c929f6fa68ef20438fe77e49184
* TestRepository: Expose some getters for CommitBuilderDave Borowitz2015-03-121-0/+16
| | | | Change-Id: Ic6d179bd2de0081633c22fb82ca68ea619cb686f
* TestRepository: Add methods to amend commits or refsDave Borowitz2015-03-121-12/+87
| | | | Change-Id: I47082416f6e281262b160ba15272258f9109abd1
* TestRepository: Add a reset method to move HEAD aroundDave Borowitz2015-03-121-0/+55
| | | | | | | | | This flushed out a number of bugs in the way DfsRefUpdate, or at least the InMemoryRepository implementation, processes symrefs. These have been fixed, to an extent, in InMemoryRepository, but other implementations may still suffer from these bugs. Change-Id: Ifd12115a0060b9ff45a88d305b72f91ca0472f9a
* TestRepository: Optionally insert Change-Id in commit messageDave Borowitz2015-03-121-1/+25
| | | | | | Copied the implementation from CommitCommand. Change-Id: Iade0e2d70bde70cfa830fe23bcc41959b011a14a
* TestRepository: Allow custom author/committer per-commitDave Borowitz2015-03-111-9/+32
| | | | Change-Id: I078fe00470ebe60f93f4a718c163dd1412fdc776
* TestRepository: Use try-with-resources where appropriateDave Borowitz2015-03-111-74/+58
| | | | Change-Id: I06f9534ab84278df37a140700fc2bed5ab667299
* Fix junit tests under windows when the platform is explicitly changedChristian Halstrick2014-12-221-0/+2
| | | | | | | | | | | | SystemReader used a chached ObjectChecker which was instantiated only once. But in case of unit tests where we can change the platform dynamically (e.g. MockSystemReader.setWindows()) this is wrong and caused DirCacheCheckoutMaliciousPathTest. testMaliciousAbsoluteCurDrivePathWindowsOnUnix() to fail. This change allows user of SystemReader to force the creation of a new ObjectChecker. MockSystemReader.setWindows() and .setUnix() make use of this feature. Change-Id: I87458d1dc63c1f5c18979f972b1c1f0d670a9ed8
* Allow explicit configuration of git directory in InitCommandChristian Halstrick2014-12-151-0/+1
| | | | | | | | | | | | | | Native git's "init" command allows to specify the location of the .git folder with the option "--separate-git-dir". This allows for example to setup repositories with a non-standard layout. E.g. .git folder under /repos/a.git and the worktree under /home/git/a. Both directories contain pointers to the other side: /repos/a.git/config contains core.worktree=/home/git/a . And /home/git/a/.git is a file containing "gitdir: /repos/a.git". This commit adds that option to InitCommand. This feature is needed to support the new submodule layout where the .git folder of the submodules is under .git/modules/<submodule>. Change-Id: I0208f643808bf8f28e2c979d6e33662607775f1f
* Fix LocalDiskRepositoryTestCase to create correct type of reposChristian Halstrick2014-12-121-1/+1
| | | | | | | | | In one place LocalDiskRepositoryTestCase was ignoring the specification whether to create a bare or non-bare repository. Fix this and fix also one test which fails now because bare repos don't write reflogs by default. Change-Id: I4bcf8cf97c5b46e2f3919809eaa121a8d0e47010 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix RecursiveMerger's internal use of merge to find a merge baseChristian Halstrick2014-07-252-0/+9
| | | | | | | | | | | | | | | | | | When RecursiveMerger tried to determine a common base tree it was recursively tried to merge multiple common bases. But these intermediate merges which have just been done to determine a single common base for the final merge already filled some important fields (toBeCheckedOut, toBeDeleted, ...). These side effects of the intermediate merges led to wrong results of the final merge. One symptom was that after a recursive merge which should be succesful you could still see leftover files in the worktree: files which existed in the (virtual) common base but which don't exist anymore in the branches to be merged. The solution is easy: Clear the appropriate fields after common base determination and start the final merge with a clean state. Change-Id: I644ea9e1cb15360f7901bc0483cdb9286308c226 Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
* Try to fix intermittent test failure related to file timestampsRobin Rosenberg2014-07-011-3/+4
| | | | | | | | | | Improve how tests do a "touch" operation on files. Instead of doing "f.setLastModified(System.currentTimeMillis)" open a Outputstream on the file and directly close it again. This makes this method rely only on one clock - the clock of the filesystem. Bug: 436917 Change-Id: I68ef3c2878f28b12daebf2ef6a9fa0a5d6e0964d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Move SampleDataRepositoryTestCase to org.eclipse.jgit.testShawn Pearce2013-11-241-76/+0
| | | | | | | | This class requires resources which are private to another bundle. Move the class next to its resources, removing an odd cross bundle dependency. Change-Id: I30d5568b09ea5fb3bd3bb60b602f149c0867f49a
* Support running from JARs in JGitTestUtilShawn Pearce2013-11-242-5/+38
| | | | | | | | Buck invokes JUnit tests from compiled JARs, not class directories. When copying a resource back to the filesystem a jar: style URL is obtained from the ClassLoader. Change-Id: I28d702484ec13b0b309b87990da867050e4b5ec6
* Enhance RepositoryTestCase.commitFile() to work on empty repositoryMatthias Sohn2013-10-311-4/+13
| | | | | Change-Id: Ic64497f0eedf8996ba593ca52dc9a040732a5b24 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Make sure SystemReader is reset after test is runRobin Stocker2013-10-221-0/+2
| | | | | | | | Otherwise the MockSystemReader from the test setup is active for other tests. Change-Id: I7caf693bd692d06936e29efd4dc4aabb48c1c39b Signed-off-by: Robin Stocker <robin@nibor.org>
* Fix failed tests when the tmp directory is a symlinkRobin Rosenberg2013-10-201-0/+5
| | | | | | On Mac OS X /tmp is by default a symbolic link. Change-Id: I0913ee5ee8db5c5918a9e41abbbfe125b6c70783 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Update reflog like C Git during rebase (non-interactive)Robin Rosenberg2013-07-211-0/+1
| | | | | | Bug: 346350 Change-Id: I119766a00bc52a810c51cffaa19207cb8555ca22 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Remove unused import in LocalDiskRepositoryTestCaseTomasz Zarna2013-05-131-1/+0
| | | | Change-Id: Ib8a8e72dd3c808c4fe92c32ed177272dce29ac60
* Fix hardcoded use of target/trash in LocalDiskRepositoryTestCaseShawn Pearce2013-05-081-61/+81
| | | | | | | | | | | | | | | | | | `pwd`/target is only valid in Maven Reactor builds where Maven has moved into the project directory and created a target for the build output. Most other build systems do not use "target" and may not even perform a directory change between test suites. Rewrite LocalDiskRepositoryTestCase's temporary directory code to use the system specified location and create new unique names. This prevents fixes between concurrently running tests and allows the caller to specify the root using java.io.tmpdir. Update the surefire command lines to use target within each project as the system temporary directory during unit testing, preventing JGit's own test suite from writing to /tmp or somewhere like C:\tmp. Change-Id: I9e8431f6ddfc16fee89f677bcce67c99cfb56782
* Extend the FS class for Java7Robin Rosenberg2013-05-041-6/+8
| | | | | | | | | | | | | | | | | | | | | The most important difference is that in Java7 we have symbolic links and for most operations in the work tree we want to operate on the link itself rather than the link target, which the old File methods generally do. We also add support for the hidden attribute, which only makes sense on Windows and exists, just since there are claims that Files.exists is faster the File.exists. A new bundle is only activated when run with a Java7 execution environment. It is implemented as a fragment. Tycho currently has no way to conditionally include optional features based on the java version used to run the build, this means with this change the jgit packaging build always needs to be run using java 7. Change-Id: I3d6580d6fa7b22f60d7e54ab236898ed44954ffd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Don't use internal type FileRepository in public APIMatthias Sohn2013-03-201-5/+5
| | | | | Change-Id: I7c9c09b4f190fa7cb830563bcdf2071407ee2ce0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* JGit 3.0: move internal classes into an internal subpackageShawn Pearce2013-03-184-11/+10
| | | | | | | | This breaks all existing callers once. Applications are not supposed to build against the internal storage API unless they can accept API churn and make necessary updates as versions change. Change-Id: I2ab1327c202ef2003565e1b0770a583970e432e9
* Move base test classes to the junit bundle for reuse for Java 7 testsRobin Rosenberg2013-02-042-0/+574
| | | | Change-Id: Iedb54eb9d8396bc3ae66d8754c1527fd9ca655f9
* Remove packIndex field from FileObjDatabase openPack method.Colby Ranger2013-01-101-1/+1
| | | | | | | | | | | Previously, the FileObjDatabase required both the pack file path and index file path to be passed to openPack(). A future change to add a bitmap index will add a .bitmap file parallel to the pack file (similar to the .idx file). Update the PackFile to support automatically loading pack index extensions based on the pack file path. Change-Id: Ifc8fc3e57f4afa177ba5a88df87334dbfa799f01
* Declare essentially static methods as staticRobin Rosenberg2012-12-272-3/+3
| | | | Change-Id: I83ca25fb569c0dbc36eb374d5437fcf2b65a6f68
* Provide a convenient read() in RepositoryTestCaseRobin Stocker2012-09-252-13/+23
| | | | | | | For reading a file by its repository-relative path, analogous to writeTrashFile. Change-Id: I112de0d57c2ee1bd425de6cbf561a57fea7147f0
* Suppress boxing warnings where we know they are okRobin Rosenberg2012-09-221-0/+58
| | | | | | | | | Invoke the wrapper types' valueOf via static imports. For booleans used in asserts, add a new assert in the JUnit utility package since out current version of JUnit does not have the assert(boolean, boolean) method. Change-Id: I9099bd8efbc8c133479344d51ce7dabed8958a2b
* Additional unit tests for the GCSasa Zivkov2012-09-161-1/+28
| | | | | Change-Id: Id5b578f7040c6c896ab9386a6b5ed62b0f495ed5 Signed-off-by: Sasa Zivkov <sasa.zivkov@sap.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Ensure a directory exists before trying to create/merge a file into it.Jevgeni Zelenkov2012-08-061-0/+8
| | | | | | | | | | Since git doesn't keep track of empty directories, they should be created first. Test case included demonstrates that using StashApplyCommand(). Bugfix is applied to the DirCacheCheckout class, because StashApplyCommand() uses it internally to apply a stash. Change-Id: Iac259229ef919f9e92e7e51a671d877172bb88a8 Signed-off-by: Jevgeni Zelenkov <jevgeni.zelenkov@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add a CommitBuilder method to edit arbitrary DirCacheEntrysDave Borowitz2012-06-151-2/+6
| | | | Change-Id: Ic2f5ec28621219a8ff1272674e2bf2c8d36eb107
* Get rid of warnings about empty statmentsRobin Rosenberg2012-06-061-0/+6
| | | | | | | | In HtttpAuthMethod there were comments, but not in a style that Eclipse recognizes. Change-Id: I64f55b27143f8badcefbb419d3951f2a26b87d5f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Validate paths during DirCheckoutRobin Rosenberg2012-04-231-0/+1
| | | | | | | | | | | | | | | | | | | DirCacheCheckout and CanonicalTreeParser cooperate. CanonicalTreeParser can detect malformed, potentially malicious tree entries and sets a flag, while DirCacheCheckout refuses to work with such paths. Malicious tree entries are ".", "..", ".git" (case insensitive), any name containing '/' and (on Windows '\') and also (on Windows) any paths ending in a combination of '.' or space or containing a ':'. We also forbid all special names like "con" etc on Windows. Some of the test can execute on any platform by enabling partial platform emulation. A new runtime exception, InvalidPathException, is introduced. For backwards compatibility it extends InvalidArgumentException. Change-Id: I86199105814b63d4340e5de0e471d0da6b579ead Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Let the date formatter pick the locale.Daniel Megert2012-02-251-0/+13
| | | | | | | | | Instead of using the locale from the SystemReader we let the SystemReader create the date formats without passing the locale. Bug 368756 Change-Id: I6be9e07af804a08f3f3ac2d2d526ef594eed19e3 Signed-off-by: Daniel Megert <daniel_megert@ch.ibm.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Move writeTrashFile and deleteFile into JGitTestUtilDariusz Luksza2012-01-252-10/+46
| | | | | | | | | Moves RepositoryTestCase.writeThashFile, RepositoryTestCase.deleteFile and dependencies into JGitTestUtil for further reuse. Required-by-EGit: If8dfa0251797aca56ddc825619500dc21885ba26 Change-Id: I6fc62c8e6626f907e544b5bbe5d64e864a2c323f Signed-off-by: Dariusz Luksza <dariusz@luksza.org>
* Make sure all bytes are written to files on close, or get an error.Robin Rosenberg2012-01-151-5/+6
| | | | | | | | | | Java's BufferedOutputStream swallows any errors that occur when flushing the buffer in close(). This class overrides close to make sure an error during the final flush is reported back to the caller. Change-Id: I74a82b31505fadf8378069c5f6554f1033c28f9b Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>