Added credentials
This commit is contained in:
+23
-1
@@ -52,6 +52,28 @@
|
||||
(define first (git-commit "initial commit"))
|
||||
(check-equal? (string-length first) 40)
|
||||
(check-true (git-clean?))
|
||||
(check-equal? (git 'diff) "")
|
||||
(check-equal? (git 'diff '--cached) "")
|
||||
|
||||
(call-with-output-file (build-path "sub" "hello.txt")
|
||||
#:exists 'truncate/replace
|
||||
(lambda (out) (displayln "changed" out)))
|
||||
(define worktree-diff (git 'diff))
|
||||
(check-true (regexp-match? #rx"-hello" worktree-diff))
|
||||
(check-true (regexp-match? #rx"\+changed" worktree-diff))
|
||||
(check-equal? (git 'diff '--cached) "")
|
||||
|
||||
(define diff-output (open-output-string))
|
||||
(parameterize ([current-output-port diff-output])
|
||||
(dgit 'diff))
|
||||
(check-equal? (get-output-string diff-output) worktree-diff)
|
||||
|
||||
(git 'add "sub/hello.txt")
|
||||
(check-equal? (git 'diff) "")
|
||||
(define cached-diff (git 'diff '--cached))
|
||||
(check-true (regexp-match? #rx"-hello" cached-diff))
|
||||
(check-true (regexp-match? #rx"\+changed" cached-diff))
|
||||
(git 'commit "prepare branches")
|
||||
|
||||
(git 'checkout '-b "work")
|
||||
(call-with-output-file (build-path "sub" "hello.txt")
|
||||
@@ -78,6 +100,6 @@
|
||||
(git 'tag '-d "v0.1")
|
||||
(check-equal? (git 'tag) '())
|
||||
|
||||
(check-equal? (length (git 'log 10)) 1)))
|
||||
(check-equal? (length (git 'log 10)) 2)))
|
||||
(lambda ()
|
||||
(delete-directory/files tmp)))
|
||||
|
||||
@@ -76,3 +76,20 @@
|
||||
(check-false (file-exists? "remote.txt"))))
|
||||
(lambda ()
|
||||
(delete-directory/files tmp)))
|
||||
|
||||
;; HTTPS push without configured credentials must fail before entering libgit2.
|
||||
(let ([tmp2 (make-temporary-file "racket-git-https-test~a" 'directory)])
|
||||
(dynamic-wind
|
||||
void
|
||||
(lambda ()
|
||||
(parameterize ([current-directory tmp2])
|
||||
(git 'init)
|
||||
(configure!)
|
||||
(call-with-output-file "x.txt" #:exists 'truncate/replace
|
||||
(lambda (out) (displayln "x" out)))
|
||||
(git 'add "x.txt")
|
||||
(git 'commit "x")
|
||||
(git 'remote 'add "origin" "https://example.invalid/private/repo.git")
|
||||
(check-exn #rx"no HTTPS credentials are stored"
|
||||
(lambda () (git 'push)))))
|
||||
(lambda () (delete-directory/files tmp2))))
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#lang racket/base
|
||||
(require racket/file rackunit git)
|
||||
(define tmp (make-temporary-file "racket-git-stress~a" 'directory))
|
||||
(dynamic-wind
|
||||
void
|
||||
(lambda ()
|
||||
(parameterize ([current-directory tmp])
|
||||
(git 'init)
|
||||
(git 'config "user.name" "Stress Test")
|
||||
(git 'config "user.email" "stress@example.invalid")
|
||||
(for ([i (in-range 50)])
|
||||
(call-with-output-file "counter.txt" #:exists 'truncate/replace
|
||||
(lambda (out) (fprintf out "~a\n" i)))
|
||||
(git 'add "counter.txt")
|
||||
(define oid (git 'commit (format "commit ~a" i)))
|
||||
(check-equal? (string-length oid) 40))
|
||||
(check-equal? (length (git 'log 100)) 50)))
|
||||
(lambda () (delete-directory/files tmp)))
|
||||
Reference in New Issue
Block a user