workflow added

This commit is contained in:
Sadık Sünbül
2025-02-03 21:48:06 +03:00
parent de3b493523
commit 10116f925d
3 changed files with 86 additions and 0 deletions

27
.github/workflows/test-leveldb.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
on:
push:
branches:
- master
- main
paths:
- 'leveldb/**'
pull_request:
paths:
- 'leveldb/**'
name: "Tests LevelDB"
jobs:
Tests:
strategy:
matrix:
go-version:
- 1.23.x
runs-on: ubuntu-latest
steps:
- name: Fetch Repository
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '${{ matrix.go-version }}'
- name: Test LevelDB
run: cd ./leveldb && go test ./... -v -race

View File

@@ -77,3 +77,4 @@ type Storage interface {
- [SQLite3](./sqlite3/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Sqlite3%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-sqlite3.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
- [ClickHouse](./clickhouse/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Clickhouse%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-clickhouse.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
- [Valkey](./valkey/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+valkey%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-valkey.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
- [LevelDB](./leveldb/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+LevelDB%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-leveldb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>

View File

@@ -1,6 +1,7 @@
package leveldb
import (
"fmt"
"os"
"testing"
"time"
@@ -164,3 +165,60 @@ func Test_GarbageCollection_BeforeWorking(t *testing.T) {
err = removeAllFiles("./fiber.leveldb")
require.Nil(t, err)
}
func Benchmark_Set(b *testing.B) {
db := New()
defer func() {
db.Close()
_ = removeAllFiles("./fiber.leveldb")
}()
b.ResetTimer()
b.RunParallel(func(pb *testing.PB) {
i := 0
for pb.Next() {
key := []byte(fmt.Sprintf("key_%d", i))
value := []byte(fmt.Sprintf("value_%d", i))
_ = db.Set(key, value, 0)
i++
}
})
}
func Benchmark_Get(b *testing.B) {
db := New()
defer func() {
db.Close()
_ = removeAllFiles("./fiber.leveldb")
}()
key := []byte("test_key")
value := []byte("test_value")
_ = db.Set(key, value, 0)
b.ResetTimer()
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
_, _ = db.Get(key)
}
})
}
func Benchmark_Delete(b *testing.B) {
db := New()
defer func() {
db.Close()
_ = removeAllFiles("./fiber.leveldb")
}()
b.ResetTimer()
b.RunParallel(func(pb *testing.PB) {
i := 0
for pb.Next() {
key := fmt.Sprintf("key_%d", i)
_ = db.Set([]byte(key), []byte("value"), 0)
_ = db.Delete(key)
i++
}
})
}