From 125b9e3c31a3d8b1539868148f52876af1e4f1ec Mon Sep 17 00:00:00 2001 From: Michael McGuinness Date: Tue, 13 May 2025 08:51:16 +0000 Subject: [PATCH] Merged in feature/splittests (pull request #141) Always Race and Split Tests * addrace * noraceinfull --- internal/document/types/pdf.go | 10 +++++++--- scripts/tests.yml | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/internal/document/types/pdf.go b/internal/document/types/pdf.go index 08caa215..2f0400c3 100644 --- a/internal/document/types/pdf.go +++ b/internal/document/types/pdf.go @@ -23,7 +23,6 @@ type PDF struct { minDimension int minDPI int pngDPI int - mu sync.Mutex } const ( @@ -36,6 +35,8 @@ const ( PNG_DEFAULT_DPI = 72 ) +var readMu sync.Mutex + func NewPDFFromReader(buf io.Reader) (*PDF, error) { seek, err := ReaderToSeeker(buf) if err != nil { @@ -64,8 +65,8 @@ func NewPDF(buf io.ReadSeeker) *PDF { } func (s *PDF) read(ctx context.Context) (*model.Context, error) { - s.mu.Lock() - defer s.mu.Unlock() + readMu.Lock() + defer readMu.Unlock() _, err := s.pdf.Seek(0, io.SeekStart) if err != nil { @@ -100,6 +101,9 @@ func (s *PDF) GetPage(ctx context.Context, index int) ([]byte, error) { return nil, err } + readMu.Lock() + defer readMu.Unlock() + extractedReader, err := api.ExtractPage(pdfCtx, index+1) if err != nil { return nil, err diff --git a/scripts/tests.yml b/scripts/tests.yml index 7f1f432c..795e4b14 100644 --- a/scripts/tests.yml +++ b/scripts/tests.yml @@ -45,6 +45,9 @@ tasks: -coverprofile={{.COVERAGE_FILE}} \ ./... - task: coverage + race: + cmds: + - GOMAXPROCS={{.TEST_PARALLEL}} go test -count=1 -parallel {{.TEST_PARALLEL}} -race ./... perf: vars: NUM_RESULTS: 5