mirror of
https://github.com/gofiber/storage.git
synced 2025-10-22 00:01:53 +08:00
workflow added
This commit is contained in:
27
.github/workflows/test-leveldb.yml
vendored
Normal file
27
.github/workflows/test-leveldb.yml
vendored
Normal 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
|
@@ -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>
|
||||
|
@@ -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++
|
||||
}
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user