{"id":15174129,"url":"https://github.com/joel-ling/lmdb-bdd","last_synced_at":"2026-01-27T05:31:23.003Z","repository":{"id":247365931,"uuid":"824419604","full_name":"joel-ling/lmdb-bdd","owner":"joel-ling","description":"A set of automated, self-documenting tests verifying the behaviour of Go bindings to the LMDB API, applying behaviour-driven development through the Cucumber framework for Golang","archived":false,"fork":false,"pushed_at":"2024-09-19T07:27:17.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-31T22:09:10.435Z","etag":null,"topics":["bdd","cucumber","gherkin","golang","lmdb","testing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joel-ling.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-05T05:21:14.000Z","updated_at":"2024-09-19T07:27:21.000Z","dependencies_parsed_at":"2024-11-08T08:54:48.603Z","dependency_job_id":"8be609a3-6659-4fa5-b11c-f0ccadeb099f","html_url":"https://github.com/joel-ling/lmdb-bdd","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"8a0eb9bacaa10790d674cf4674ee36e5fbc2a64e"},"previous_names":["joel-ling/lmdb-bdd"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joel-ling/lmdb-bdd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joel-ling%2Flmdb-bdd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joel-ling%2Flmdb-bdd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joel-ling%2Flmdb-bdd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joel-ling%2Flmdb-bdd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joel-ling","download_url":"https://codeload.github.com/joel-ling/lmdb-bdd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joel-ling%2Flmdb-bdd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28803873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T03:44:14.111Z","status":"ssl_error","status_checked_at":"2026-01-27T03:43:33.507Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bdd","cucumber","gherkin","golang","lmdb","testing"],"created_at":"2024-09-27T11:24:32.657Z","updated_at":"2026-01-27T05:31:22.986Z","avatar_url":"https://github.com/joel-ling.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"```bash\n$ go test\n```\n```gherkin\nFeature: LMDB\n  In order to verify the effects of software interacting with LMDB\n  As a software engineer practising behaviour-driven development\n  I need to establish some baseline observations\n\n  Scenario: Get non-existent record                                           # features/lmdb.feature:6\n    Given there is a new LMDB environment \"env\"                               # new-lmdb-env.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.newLMDBEnv\n    When I get a record \"key\" in DB \"deebee\" of environment \"env\"             # get-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getRecord\n    Then I should see an error \"MDB_NOTFOUND\"                                 # see-error.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.seeError\n    And the ID of last committed transaction in environment \"env\" should be 0 # id-last-commit.go:21 -\u003e github.com/joel-ling/lmdb-bdd/test.idLastCommit\n\n  Scenario: Put record                                                         # features/lmdb.feature:12\n    Given there is a new LMDB environment \"env\"                                # new-lmdb-env.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.newLMDBEnv\n    When I put a record \"key\" \"value\" in DB \"deebee\" of environment \"env\"      # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    Then the ID of last committed transaction in environment \"env\" should be 1 # id-last-commit.go:21 -\u003e github.com/joel-ling/lmdb-bdd/test.idLastCommit\n\n  Scenario: Put and then get record                                           # features/lmdb.feature:17\n    Given there is a new LMDB environment \"env\"                               # new-lmdb-env.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.newLMDBEnv\n    When I put a record \"key\" \"value\" in DB \"deebee\" of environment \"env\"     # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    And I get a record \"key\" in DB \"deebee\" of environment \"env\"              # get-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getRecord\n    Then I should see a value \"value\"                                         # see-value.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeValue\n    And I should see no error                                                 # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n    And the ID of last committed transaction in environment \"env\" should be 1 # id-last-commit.go:21 -\u003e github.com/joel-ling/lmdb-bdd/test.idLastCommit\n\n  Scenario: Get record put in different environment                         # features/lmdb.feature:25\n    Given there is a new LMDB environment \"primary\"                         # new-lmdb-env.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.newLMDBEnv\n    And there is a new LMDB environment \"secondary\"                         # new-lmdb-env.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.newLMDBEnv\n    And there is a record \"key\" \"value\" in DB \"DB\" of environment \"primary\" # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    When I get a record \"key\" in DB \"DB\" of environment \"secondary\"         # get-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getRecord\n    Then I should see an error \"MDB_NOTFOUND\"                               # see-error.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.seeError\n\n  Scenario: Get records using a cursor                                # features/lmdb.feature:32\n    Given there is a new LMDB environment \"env\"                       # new-lmdb-env.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.newLMDBEnv\n    And there is a record \"41\" \"A\" in DB \"ASCII\" of environment \"env\" # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    And there is a record \"43\" \"C\" in DB \"ASCII\" of environment \"env\" # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    And there is a record \"42\" \"B\" in DB \"ASCII\" of environment \"env\" # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    When I open a cursor to DB \"ASCII\" of environment \"env\"           # open-cursor.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.openCursor\n    And I get the next record using the cursor                        # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see a record \"41\" \"A\"                               # see-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeRecord\n    And I should see no error                                         # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n    When I get the next record using the cursor                       # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see a record \"42\" \"B\"                               # see-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeRecord\n    And I should see no error                                         # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n    When I get the next record using the cursor                       # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see a record \"43\" \"C\"                               # see-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeRecord\n    And I should see no error                                         # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n    When I get the next record using the cursor                       # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see an error \"MDB_NOTFOUND\"                         # see-error.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.seeError\n\n  Scenario: Get records using a cursor, resetting and renewing read transaction # features/lmdb.feature:50\n    Given there is a new LMDB environment \"env\"                                 # new-lmdb-env.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.newLMDBEnv\n    And there is a record \"41\" \"A\" in DB \"ASCII\" of environment \"env\"           # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    And there is a record \"42\" \"B\" in DB \"ASCII\" of environment \"env\"           # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    And there is a record \"43\" \"C\" in DB \"ASCII\" of environment \"env\"           # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    When I open a cursor to DB \"ASCII\" of environment \"env\"                     # open-cursor.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.openCursor\n    And I get the next record using the cursor                                  # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see a record \"41\" \"A\"                                         # see-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeRecord\n    And I should see no error                                                   # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n    When I get the next record using the cursor                                 # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see a record \"42\" \"B\"                                         # see-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeRecord\n    And I should see no error                                                   # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n    When I reset the transaction relating to the cursor                         # reset-cursor.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.resetCursor\n    And I renew the transaction relating to the cursor, and the cursor          # renew-cursor.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.renewCursor\n    And I get the next record using the cursor, specifying the previous key     # get-next-record-set.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecordSet\n    Then I should see a record \"43\" \"C\"                                         # see-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeRecord\n    And I should see no error                                                   # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n\n  Scenario: List databases in environment                                # features/lmdb.feature:68\n    Given there is a new LMDB environment \"env\"                          # new-lmdb-env.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.newLMDBEnv\n    And there is a record \"key\" \"value\" in DB \"db0\" of environment \"env\" # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    And there is a record \"key\" \"value\" in DB \"db1\" of environment \"env\" # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    And there is a record \"key\" \"value\" in DB \"db2\" of environment \"env\" # put-record.go:25 -\u003e github.com/joel-ling/lmdb-bdd/test.putRecord\n    When I open a cursor to the root database of environment \"env\"       # open-cursor-root.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.openCursorRoot\n    And I get the next record using the cursor                           # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see a key \"db0\"                                        # see-key.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeKey\n    And I should see no error                                            # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n    When I get the next record using the cursor                          # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see a key \"db1\"                                        # see-key.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeKey\n    And I should see no error                                            # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n    When I get the next record using the cursor                          # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see a key \"db2\"                                        # see-key.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeKey\n    And I should see no error                                            # see-no-error.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.seeNoError\n    When I get the next record using the cursor                          # get-next-record.go:18 -\u003e github.com/joel-ling/lmdb-bdd/test.getNextRecord\n    Then I should see an error \"MDB_NOTFOUND\"                            # see-error.go:19 -\u003e github.com/joel-ling/lmdb-bdd/test.seeError\n```\n```txt\n7 scenarios (7 passed)\n66 steps (66 passed)\n26.43273ms\nPASS\nok  \tgithub.com/joel-ling/lmdb-bdd\t0.032s\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoel-ling%2Flmdb-bdd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoel-ling%2Flmdb-bdd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoel-ling%2Flmdb-bdd/lists"}