Skip to content

Commit

Permalink
Fixes GitHub action configurations and make tests works
Browse files Browse the repository at this point in the history
  • Loading branch information
pftg committed Dec 20, 2020
1 parent 5cd7701 commit c727877
Show file tree
Hide file tree
Showing 9 changed files with 206 additions and 223 deletions.
32 changes: 8 additions & 24 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ env:
SPEC_OPTS: '--backtrace'

jobs:
name: Lint
lint:
name: Lint
runs-on: ubuntu-latest

steps:
Expand All @@ -24,15 +25,15 @@ jobs:
bundler-cache: true

- name: Run Standard Ruby linter
run: bin/standardrb --no-fix --fail-fast
run: bundle exec standardrb --no-fix --fail-fast
continue-on-error: true

test:
name: Functional Testing
runs-on: ubuntu-20.04 # In order to install libvips 8.9+ version

strategy:
matrix:
os-version: [ 'ubuntu-20.04' ]
ruby-version:
- 2.1
- 2.2
Expand All @@ -42,6 +43,9 @@ jobs:
- 2.6
- 2.7
- jruby
fail-fast: true

runs-on: ${{ matrix.os-version }}

steps:
- name: Checkout code
Expand All @@ -62,28 +66,8 @@ jobs:
env:
DEBIAN_FRONTEND: noninteractive
run:
sudo apt install --fix-missing -qq --no-install-recommends -o Acquire::Retries=3
sudo apt install --fix-missing -qq -o Acquire::Retries=3
libvips libvips-dev libvips-tools
gettext
libcfitsio-dev
libexpat1-dev
libfftw3-dev
libgif-dev
libglib2.0-dev
libgsf-1-dev
libjpeg-turbo8-dev
liblcms2-dev
libmagickwand-dev
libmatio-dev
libopenexr-dev
libopenslide-dev
liborc-0.4-dev
libpango1.0-dev
libpoppler-glib-dev
libtiff5-dev
libwebp-dev
librsvg2-dev
libmagick++-dev

- name: Run Tests
run: bundle exec rake spec
1 change: 0 additions & 1 deletion .yardopts
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
--markup-provider=redcarpet
--markup=markdown
2 changes: 0 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,3 @@ source 'https://rubygems.org'
gemspec

gem 'github-markup'
gem 'redcarpet', platforms: :ruby
gem 'standard', platforms: :ruby
2 changes: 1 addition & 1 deletion ruby-vips.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ and it can process large images without loading the whole image in memory.

# RuboCop requires Ruby >= 2.2
if Gem.ruby_version >= Gem::Version.new("2.2")
spec.add_development_dependency "rubocop", ["~> 0.64"]
spec.add_development_dependency "standard"
end

end
285 changes: 139 additions & 146 deletions spec/connection_spec.rb
Original file line number Diff line number Diff line change
@@ -1,170 +1,163 @@
require 'spec_helper.rb'

if Vips::at_least_libvips?(8, 9)
RSpec.describe Vips::Source do
it 'can create a source from a descriptor' do
source = Vips::Source.new_from_descriptor(0)
RSpec.describe Vips::Source, version: [8, 9] do
it 'can create a source from a descriptor' do
source = Vips::Source.new_from_descriptor(0)

expect(source)
end
expect(source)
end

it 'can create a source from a filename' do
source = Vips::Source.new_from_file simg('wagon.jpg')
it 'can create a source from a filename' do
source = Vips::Source.new_from_file simg('wagon.jpg')

expect(source)
end
expect(source)
end

it 'can\'t create a source from a bad filename' do
expect {
Vips::Source.new_from_file simg('banana.jpg')
}.to raise_exception(Vips::Error)
end
it 'can\'t create a source from a bad filename' do
expect {
Vips::Source.new_from_file simg('banana.jpg')
}.to raise_exception(Vips::Error)
end

it 'can create a source from an area of memory' do
str = File.open(simg('wagon.jpg'), 'rb').read
source = Vips::Source.new_from_memory str
it 'can create a source from an area of memory' do
str = File.open(simg('wagon.jpg'), 'rb').read
source = Vips::Source.new_from_memory str

expect(source)
end
expect(source)
end

it 'sources have filenames and nicks' do
source = Vips::Source.new_from_file simg('wagon.jpg')
it 'sources have filenames and nicks' do
source = Vips::Source.new_from_file simg('wagon.jpg')

expect(source.filename).to eq(simg('wagon.jpg'))
expect(source.nick)
end
expect(source.filename).to eq(simg('wagon.jpg'))
expect(source.nick)
end

it 'can load an image from filename source' do
source = Vips::Source.new_from_file simg('wagon.jpg')
image = Vips::Image.new_from_source source, ''
it 'can load an image from filename source' do
source = Vips::Source.new_from_file simg('wagon.jpg')
image = Vips::Image.new_from_source source, ''

expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)

end
end
end

if Vips::at_least_libvips?(8, 9)
RSpec.describe Vips::Target do
it 'can create a target to a filename' do
target = Vips::Target.new_to_file timg('x.jpg')

expect(target)
end

it 'can create a target to a descriptor' do
target = Vips::Target.new_to_descriptor 1

expect(target)
end

it 'can create a target to a memory area' do
target = Vips::Target.new_to_memory

expect(target)
end

it 'can\'t create a target to a bad filename' do
expect {
Vips::Target.new_to_file '/banana/monkey'
}.to raise_exception(Vips::Error)
end

it 'can save an image to a filename target' do
source = Vips::Source.new_from_file simg('wagon.jpg')
image = Vips::Image.new_from_source source, ''
filename = timg('x4.png')
target = Vips::Target.new_to_file filename
image.write_to_target target, '.png'

image = Vips::Image.new_from_file filename
expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end

it 'can save an image to a memory target' do
source = Vips::Source.new_from_file simg('wagon.jpg')
image = Vips::Image.new_from_source source, ''
target = Vips::Target.new_to_memory
image.write_to_target target, '.png'
memory = target.get('blob')

image = Vips::Image.new_from_buffer memory, ''
expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end
RSpec.describe Vips::Target, version: [8, 9] do
it 'can create a target to a filename' do
target = Vips::Target.new_to_file timg('x.jpg')

expect(target)
end

it 'can create a target to a descriptor' do
target = Vips::Target.new_to_descriptor 1

expect(target)
end

it 'can create a target to a memory area' do
target = Vips::Target.new_to_memory

expect(target)
end

it 'can\'t create a target to a bad filename' do
expect {
Vips::Target.new_to_file '/banana/monkey'
}.to raise_exception(Vips::Error)
end

it 'can save an image to a filename target' do
source = Vips::Source.new_from_file simg('wagon.jpg')
image = Vips::Image.new_from_source source, ''
filename = timg('x4.png')
target = Vips::Target.new_to_file filename
image.write_to_target target, '.png'

image = Vips::Image.new_from_file filename
expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end

it 'can save an image to a memory target' do
source = Vips::Source.new_from_file simg('wagon.jpg')
image = Vips::Image.new_from_source source, ''
target = Vips::Target.new_to_memory
image.write_to_target target, '.png'
memory = target.get('blob')

image = Vips::Image.new_from_buffer memory, ''
expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end

end

if Vips::at_least_libvips?(8, 9)
RSpec.describe Vips::SourceCustom do
it 'can create a custom source' do
source = Vips::SourceCustom.new

expect(source)
end

it 'can load a custom source' do
file = File.open simg('wagon.jpg'), "rb"
source = Vips::SourceCustom.new
source.on_read { |length| file.read length }
source.on_seek { |offset, whence| file.seek(offset, whence) }
image = Vips::Image.new_from_source source, ""

expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end

it 'on_seek is optional' do
file = File.open simg('wagon.jpg'), "rb"
source = Vips::SourceCustom.new
source.on_read { |length| file.read length }
image = Vips::Image.new_from_source source, ""

expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end

it 'can create a user output stream' do
target = Vips::TargetCustom.new

expect(target)
end

it 'can write an image to a user output stream' do
filename = timg('x5.png')
file = File.open filename, "wb"
target = Vips::TargetCustom.new
target.on_write { |chunk| file.write(chunk) }
target.on_finish { file.close }
image = Vips::Image.new_from_file simg('wagon.jpg')
image.write_to_target target, ".png"

image = Vips::Image.new_from_file filename
expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end
RSpec.describe Vips::SourceCustom, version: [8, 9] do
it 'can create a custom source' do
source = Vips::SourceCustom.new

expect(source)
end

it 'can load a custom source' do
file = File.open simg('wagon.jpg'), "rb"
source = Vips::SourceCustom.new
source.on_read { |length| file.read length }
source.on_seek { |offset, whence| file.seek(offset, whence) }
image = Vips::Image.new_from_source source, ""

expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end

it 'on_seek is optional' do
file = File.open simg('wagon.jpg'), "rb"
source = Vips::SourceCustom.new
source.on_read { |length| file.read length }
image = Vips::Image.new_from_source source, ""

expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end

it 'can create a user output stream' do
target = Vips::TargetCustom.new

expect(target)
end

it 'can write an image to a user output stream' do
filename = timg('x5.png')
file = File.open filename, "wb"
target = Vips::TargetCustom.new
target.on_write { |chunk| file.write(chunk) }
target.on_finish { file.close }
image = Vips::Image.new_from_file simg('wagon.jpg')
image.write_to_target target, ".png"

image = Vips::Image.new_from_file filename
expect(image)
expect(image.width).to eq(685)
expect(image.height).to eq(478)
expect(image.bands).to eq(3)
expect(image.avg).to be_within(0.001).of(109.789)
end

end
Loading

0 comments on commit c727877

Please sign in to comment.