checks_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package main
  2. import (
  3. "testing"
  4. )
  5. func TestCheckRegex(t *testing.T) {
  6. var results []LeakElem
  7. opts := &Options{
  8. Concurrency: 10,
  9. B64EntropyCutoff: 70,
  10. HexEntropyCutoff: 40,
  11. Entropy: false,
  12. }
  13. repo := RepoDesc{
  14. url: "someurl",
  15. }
  16. commit := Commit{}
  17. checks := map[string]int{
  18. "aws=\"AKIALALEMEL33243OLIAE": 1,
  19. "aws\"afewafewafewafewaf\"": 0,
  20. }
  21. for k, v := range checks {
  22. results = doChecks(k, commit, opts, repo)
  23. if v != len(results) {
  24. t.Errorf("regexCheck failed on string %s", k)
  25. }
  26. }
  27. }
  28. func TestEntropy(t *testing.T) {
  29. var enoughEntropy bool
  30. opts := &Options{
  31. Concurrency: 10,
  32. B64EntropyCutoff: 70,
  33. HexEntropyCutoff: 40,
  34. Entropy: false,
  35. }
  36. checks := map[string]bool{
  37. "reddit_api_secret = settings./.http}": false,
  38. "heroku_client_secret = simple": false,
  39. "reddit_api_secret = \"4ok1WFf57-EMswEfAFGewa\"": true,
  40. "aws_secret= \"AKIAIMNOJVGFDXXFE4OA\"": true,
  41. }
  42. for k, v := range checks {
  43. enoughEntropy = checkShannonEntropy(k, opts)
  44. if v != enoughEntropy {
  45. t.Errorf("checkEntropy failed for %s. Expected %t, got %t", k, v, enoughEntropy)
  46. }
  47. }
  48. }
  49. func TestStopWords(t *testing.T) {
  50. if containsStopWords("aws_secret=settings.AWS_SECRET") != true {
  51. t.Errorf("checkStopWords Failed")
  52. }
  53. }