Skip to content

Fixes CI configuration and make tests passes #260

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh nice, I didn't know about that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just added ;)

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