From 8dc1d9babbe183d5aa7d1fd4ee7a962867a1e574 Mon Sep 17 00:00:00 2001 From: monirzadeh <25131576+Monirzadeh@users.noreply.github.com> Date: Thu, 27 Jun 2024 01:06:36 +0330 Subject: [PATCH 1/7] add first unit test for font.go --- font_test.go | 28 ++++++++++++++++++++++++++++ go.mod | 7 +++++++ go.sum | 10 ++++++++++ 3 files changed, 45 insertions(+) create mode 100644 font_test.go diff --git a/font_test.go b/font_test.go new file mode 100644 index 0000000..afad536 --- /dev/null +++ b/font_test.go @@ -0,0 +1,28 @@ +package writer + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestFontSize(t *testing.T) { + face := &Face{} // Mock Face object + size := int32(12) + + font := NewFont(face, size) + fontSize := font.Size() + + assert.Equal(t, size, fontSize) +} + +func TestSetFontReSize(t *testing.T) { + face := &Face{} // Mock Face object + size := int32(12) + + font := NewFont(face, size) + newSize := int32(16) + font.SetSize(newSize) + + assert.Equal(t, newSize, font.Size()) +} diff --git a/go.mod b/go.mod index d086d98..ec85178 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,15 @@ go 1.20.0 require ( github.com/haashemi/go-harfbuzz v0.0.0-20240304202021-7d8c8e99547f github.com/mattn/go-pointer v0.0.1 + github.com/stretchr/testify v1.9.0 golang.org/x/image v0.15.0 golang.org/x/text v0.14.0 ) +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) + // replace github.com/haashemi/go-harfbuzz v0.0.1 => ../go-harfbuzz diff --git a/go.sum b/go.sum index 6a6b677..85d43b1 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,18 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/haashemi/go-harfbuzz v0.0.0-20240304202021-7d8c8e99547f h1:3RpC5xQxtwaqG8D417EIiC23/RxOrk7g2efIz4DXZww= github.com/haashemi/go-harfbuzz v0.0.0-20240304202021-7d8c8e99547f/go.mod h1:x/7sZksqZHTio7OmfVgHo2K1GelkqAWcg4FAIBp4iqA= github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/image v0.15.0 h1:kOELfmgrmJlw4Cdb7g/QGuB3CvDrXbqEIww/pNtNBm8= golang.org/x/image v0.15.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From 8f0f4dc982a837d21713116754c008563e458bc4 Mon Sep 17 00:00:00 2001 From: monirzadeh <25131576+Monirzadeh@users.noreply.github.com> Date: Thu, 27 Jun 2024 01:44:35 +0330 Subject: [PATCH 2/7] try to fix golangci-lint test --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index ec85178..11abed2 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/haashemi/writer -go 1.20.0 +go 1.20 require ( github.com/haashemi/go-harfbuzz v0.0.0-20240304202021-7d8c8e99547f From a2925a472a2c5a196ea8628b50c0f7ff5803e159 Mon Sep 17 00:00:00 2001 From: monirzadeh <25131576+Monirzadeh@users.noreply.github.com> Date: Thu, 27 Jun 2024 02:03:51 +0330 Subject: [PATCH 3/7] add harfbuzz --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6a5241..6eeddb5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,6 +15,10 @@ jobs: golangci: runs-on: ubuntu-latest steps: + - name: Install harfbuzz + run: sudo apt-get install libharfbuzz-dev + - name: Set PKG_CONFIG_PATH + run: export PKG_CONFIG_PATH=/usr/include/harfbuzz - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac #v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe #v4.1.0 with: From 2beaae68ab317cda4e0694f864c72c5655508873 Mon Sep 17 00:00:00 2001 From: monirzadeh <25131576+Monirzadeh@users.noreply.github.com> Date: Thu, 27 Jun 2024 02:07:49 +0330 Subject: [PATCH 4/7] add gcc --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6eeddb5..c356a54 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,8 @@ jobs: run: sudo apt-get install libharfbuzz-dev - name: Set PKG_CONFIG_PATH run: export PKG_CONFIG_PATH=/usr/include/harfbuzz + - name: Install GCC + run: sudo apt-get update && sudo apt-get install gcc - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac #v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe #v4.1.0 with: From b97dcead83e9450902a4dde02f37edbd2019cda4 Mon Sep 17 00:00:00 2001 From: monirzadeh <25131576+Monirzadeh@users.noreply.github.com> Date: Thu, 27 Jun 2024 02:10:31 +0330 Subject: [PATCH 5/7] fix gcc install --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c356a54..31a1318 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: - name: Set PKG_CONFIG_PATH run: export PKG_CONFIG_PATH=/usr/include/harfbuzz - name: Install GCC - run: sudo apt-get update && sudo apt-get install gcc + run: sudo apt-get install gcc - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac #v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe #v4.1.0 with: From be490923f1ac9dea03291efff7e93ef5e2b7c26e Mon Sep 17 00:00:00 2001 From: monirzadeh <25131576+Monirzadeh@users.noreply.github.com> Date: Thu, 27 Jun 2024 11:36:23 +0330 Subject: [PATCH 6/7] test workflow on ubuntu-24.04 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 31a1318..df62b42 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ permissions: jobs: # Test golangci-lint for go-version define in go.mod golangci: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Install harfbuzz run: sudo apt-get install libharfbuzz-dev From 5fae5feb4121e75d9409897c1e7b1e97bfc3ab22 Mon Sep 17 00:00:00 2001 From: monirzadeh <25131576+Monirzadeh@users.noreply.github.com> Date: Thu, 27 Jun 2024 12:06:29 +0330 Subject: [PATCH 7/7] add workflow to run unit tests --- .github/workflows/ci.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df62b42..14cd079 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,3 +31,20 @@ jobs: with: version: latest only-new-issues: true + + tests: + runs-on: ubuntu-24.04 + steps: + - name: Install harfbuzz + run: sudo apt-get install libharfbuzz-dev + - name: Set PKG_CONFIG_PATH + run: export PKG_CONFIG_PATH=/usr/include/harfbuzz + - name: Install GCC + run: sudo apt-get install gcc + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac #v4.0.0 + - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe #v4.1.0 + with: + go-version-file: go.mod + cache: false + - name: Test + run: go test -v ./...