Skip to content

Commit

Permalink
Make CI use a dummy password hasher for all tests (#22983)
Browse files Browse the repository at this point in the history
During the recent hash algorithm change it became clear that the choice
of password hash algorithm plays a role in the time taken for CI to run.

Therefore as attempt to improve CI we should consider using a dummy
hashing algorithm instead of a real hashing algorithm.

This PR creates a dummy algorithm which is then set as the default
hashing algorithm during tests that use the fixtures. This hopefully
will cause a reduction in the time it takes for CI to run.

---------

Signed-off-by: Andrew Thornton <[email protected]>
Co-authored-by: Lunny Xiao <[email protected]>
  • Loading branch information
zeripath and lunny authored Feb 20, 2023
1 parent 2b3f12f commit ef11d41
Show file tree
Hide file tree
Showing 11 changed files with 160 additions and 74 deletions.
132 changes: 66 additions & 66 deletions models/fixtures/user.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user1
Expand Down Expand Up @@ -45,8 +45,8 @@
email: [email protected]
keep_email_private: true
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user2
Expand Down Expand Up @@ -82,8 +82,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: onmention
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user3
Expand Down Expand Up @@ -119,8 +119,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: onmention
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user4
Expand Down Expand Up @@ -156,8 +156,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user5
Expand Down Expand Up @@ -193,8 +193,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user6
Expand Down Expand Up @@ -230,8 +230,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: disabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user7
Expand Down Expand Up @@ -267,8 +267,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user8
Expand Down Expand Up @@ -304,8 +304,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: onmention
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user9
Expand Down Expand Up @@ -341,8 +341,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user10
Expand Down Expand Up @@ -378,8 +378,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user11
Expand Down Expand Up @@ -415,8 +415,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user12
Expand Down Expand Up @@ -452,8 +452,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user13
Expand Down Expand Up @@ -489,8 +489,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user14
Expand Down Expand Up @@ -526,8 +526,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user15
Expand Down Expand Up @@ -563,8 +563,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user16
Expand Down Expand Up @@ -600,8 +600,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user17
Expand Down Expand Up @@ -637,8 +637,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user18
Expand Down Expand Up @@ -674,8 +674,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user19
Expand Down Expand Up @@ -711,8 +711,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user20
Expand Down Expand Up @@ -748,8 +748,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user21
Expand Down Expand Up @@ -785,8 +785,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: limited_org
Expand Down Expand Up @@ -822,8 +822,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: privated_org
Expand Down Expand Up @@ -859,8 +859,8 @@
email: [email protected]
keep_email_private: true
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user24
Expand Down Expand Up @@ -896,8 +896,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: org25
Expand Down Expand Up @@ -933,8 +933,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: onmention
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: org26
Expand Down Expand Up @@ -970,8 +970,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user27
Expand Down Expand Up @@ -1007,8 +1007,8 @@
email: [email protected]
keep_email_private: true
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user28
Expand Down Expand Up @@ -1044,8 +1044,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user29
Expand Down Expand Up @@ -1081,8 +1081,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user30
Expand Down Expand Up @@ -1118,8 +1118,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user31
Expand Down Expand Up @@ -1155,8 +1155,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f47017
passwd_hash_algo: argon2
passwd: ZogKvWdyEx:notpassword
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user32
Expand Down Expand Up @@ -1192,8 +1192,8 @@
email: [email protected]
keep_email_private: false
email_notifications_preference: enabled
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
passwd_hash_algo: pbkdf2$50000$50
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user33
Expand Down
10 changes: 10 additions & 0 deletions models/unittest/fixtures.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
"time"

"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/auth/password/hash"
"code.gitea.io/gitea/modules/setting"

"github.com/go-testfixtures/testfixtures/v3"
"xorm.io/xorm"
Expand Down Expand Up @@ -64,6 +66,11 @@ func InitFixtures(opts FixturesOptions, engine ...*xorm.Engine) (err error) {
return err
}

// register the dummy hash algorithm function used in the test fixtures
_ = hash.Register("dummy", hash.NewDummyHasher)

setting.PasswordHashAlgo, _ = hash.SetDefaultPasswordHashAlgorithm("dummy")

return err
}

Expand Down Expand Up @@ -115,5 +122,8 @@ func LoadFixtures(engine ...*xorm.Engine) error {
}
}
}
_ = hash.Register("dummy", hash.NewDummyHasher)
setting.PasswordHashAlgo, _ = hash.SetDefaultPasswordHashAlgorithm("dummy")

return err
}
Loading

0 comments on commit ef11d41

Please sign in to comment.