Skip to content
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

Travis continuous integration. #133

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Travis continuous integration. #133

wants to merge 2 commits into from

Conversation

DArtagan
Copy link

I noticed that morituri doesn't do CI testing; I've been adding CI to a lot of my recent projects and figured maybe your project could benefit from the same. This commit primarily adds a .travis.yml file, so that Travis CI can be turned on to run tests.

Two caveats:

  1. You'll need to connect your github account with Travis CI and turn it on for this repository.
  2. Seventeen of the tests fail on my system and on Travis; could you look at the output and see if it's an error in the deployment (https://travis-ci.org/DArtagan/morituri/builds/75776340)?

One other minor edit, added ".env" to the main .gitignore for use with virtualenv workflows.

@thomasvs
Copy link
Owner

thomasvs commented Sep 5, 2015

It's missing at least the level and flacdec plugin. Please add gstreamer0.10-plugins-good as a dependency and see if that fixes it.

If this works, I'd gladly pull and have CI working. Thanks!

@JoeLametta
Copy link
Contributor

With gstreamer0.10-plugins-good as a dependency, it still fails 7 tests:

Travis CI

  • ERROR: testFlacEnc (morituri.test.test_common_gstreamer.VersionTestCase)
  • ERROR: testDoubleQuote (morituri.test.test_common_encode.NormalPathTestCase)
  • ERROR: testSingleQuote (morituri.test.test_common_encode.NormalPathTestCase)
  • ERROR: testChange (morituri.test.test_common_encode.SafeRetagTestCase)
  • ERROR: testNoChange (morituri.test.test_common_encode.SafeRetagTestCase)
  • ERROR: testWrite (morituri.test.test_common_encode.TagWriteTestCase)
  • ERROR: testUnicodePath (morituri.test.test_common_encode.UnicodePathTestCase)

The .travis.yml file used contains (based on DArtagan's one):

sudo: required

language: bash

branches:
  only:
    - thomasvs-sync

install:
    # Dependencies
    - sudo apt-get update -qq
    - sudo pip install --upgrade pip
    - sudo apt-get install -qq cdparanoia cdrdao gstreamer0.10-plugins-base gstreamer0.10-plugins-good libcdio-dev libiso9660-dev python-cddb python-gobject swig
    - sudo pip install musicbrainzngs pycdio

    # Testing dependencies
    - sudo apt-get install -qq python-gst0.10
    - sudo pip install twisted

    # Checkout
    - ./autogen.sh

    # Building
    - ./configure
    - make

    # Installing
    - sudo make install

script:
    - python -m unittest discover

P.S. I've tested a morituri branch I recently created which mirrors your updated master branch.

@thomasvs
Copy link
Owner

thomasvs commented Sep 7, 2015

On 09/06/2015 09:33 AM, JoeLametta wrote:

With |gstreamer0.10-plugins-good| as a dependency, it still fails 7 tests:

Travis CI https://travis-ci.org/JoeLametta/morituri/builds/78996363

  • ERROR: testFlacEnc
    (morituri.test.test_common_gstreamer.VersionTestCase)
  • ERROR: testDoubleQuote
    (morituri.test.test_common_encode.NormalPathTestCase)
  • ERROR: testSingleQuote
    (morituri.test.test_common_encode.NormalPathTestCase)
  • ERROR: testChange (morituri.test.test_common_encode.SafeRetagTestCase)
  • ERROR: testNoChange
    (morituri.test.test_common_encode.SafeRetagTestCase)
  • ERROR: testWrite (morituri.test.test_common_encode.TagWriteTestCase)
  • ERROR: testUnicodePath
    (morituri.test.test_common_encode.UnicodePathTestCase)

The .travis.yml file used contains (based on DArtagan's one):

sudo: required

language: bash

branches:
only:
-thomasvs-sync

install:
# Dependencies
-sudo apt-get update -qq
-sudo pip install --upgrade pip
-sudo apt-get install -qq cdparanoia cdrdao gstreamer0.10-plugins-base gstreamer0.10-plugins-good libcdio-dev libiso9660-dev python-cddb python-gobject swig
-sudo pip install musicbrainzngs pycdio

 # Testing dependencies
 -sudo apt-get install -qq python-gst0.10
 -sudo pip install twisted

 # Checkout
 -./autogen.sh

 # Building
 -./configure
 -make

 # Installing
 -sudo make install

script:
-python -m unittest discover

P.S. I tested a morituri branch I recently created which mirrors
your updated master branch.


Reply to this email directly or view it on GitHub
#133 (comment).

Some of those failing tests suggest that the flacenc element cannot be
found. It's supposed to be in gst-plugins-good, which is now installed,
but for some reason it can't get its version. Any idea on how to verify
whether or not it can find flacenc? Can you run gst-inspect-0.10 flacenc
in the environment somehow?

@JoeLametta
Copy link
Contributor

I've updated the .travis.yml file with this one:

sudo: required

language: bash

branches:
  only:
    - thomasvs-sync

install:
    # Dependencies
    - sudo apt-get update -qq
    - sudo pip install --upgrade pip
    - sudo apt-get install -qq cdparanoia cdrdao gstreamer0.10-plugins-base gstreamer0.10-plugins-good libcdio-dev libiso9660-dev python-cddb python-gobject swig
    - sudo pip install musicbrainzngs pycdio

    # Testing dependencies
    - sudo apt-get install -qq python-gst0.10
    - sudo pip install twisted

    # Checkout
    - ./autogen.sh

    # Building
    - ./configure
    - make

    # Installing
    - sudo make install

    # Check flacenc availability
    - sudo apt-get install -qq gstreamer0.10-tools
    - gst-inspect-0.10 flacenc

script:
    - python -m unittest discover

Now the flacenc test fail seems to be gone (probably because I've added the gstreamer0.10-tools package).
Travis CI still reports 6 errors.

Travis CI Link

  • ERROR: testDoubleQuote (morituri.test.test_common_encode.NormalPathTestCase)
  • ERROR: testSingleQuote (morituri.test.test_common_encode.NormalPathTestCase)
  • ERROR: testChange (morituri.test.test_common_encode.SafeRetagTestCase)
  • ERROR: testNoChange (morituri.test.test_common_encode.SafeRetagTestCase)
  • ERROR: testWrite (morituri.test.test_common_encode.TagWriteTestCase)
  • ERROR: testUnicodePath (morituri.test.test_common_encode.UnicodePathTestCase)

Here's the output of gst-inspect-0.10 flacenc on Travis CI:

Factory Details:
  Long name:    FLAC audio encoder
  Class:    Codec/Encoder/Audio
  Description:  Encodes audio with the FLAC lossless audio encoder
  Author(s):    Wim Taymans <wim.taymans@chello.be>
  Rank:     primary (256)

Plugin Details:
  Name:         flac
  Description:      The FLAC Lossless compressor Codec
  Filename:     /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstflac.so
  Version:      0.10.31
  License:      LGPL
  Source module:    gst-plugins-good
  Source release date:  2012-02-20
  Binary package:   GStreamer Good Plugins (Ubuntu)
  Origin URL:       https://launchpad.net/distros/ubuntu/+source/gst-plugins-good0.10

GObject
 +----GstObject
       +----GstElement
             +----GstAudioEncoder
                   +----GstFlacEnc

Implemented Interfaces:
  GstPreset
  GstTagSetter

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      audio/x-raw-int
             endianness: 1234
                 signed: true
                  width: 8
                  depth: 8
                   rate: [ 1, 655350 ]
               channels: [ 1, 8 ]
      audio/x-raw-int
             endianness: 1234
                 signed: true
                  width: 16
                  depth: { 12, 16 }
                   rate: [ 1, 655350 ]
               channels: [ 1, 8 ]
      audio/x-raw-int
             endianness: 1234
                 signed: true
                  width: 32
                  depth: { 20, 24 }
                   rate: [ 1, 655350 ]
               channels: [ 1, 8 ]

  SRC template: 'src'
    Availability: Always
    Capabilities:
      audio/x-flac


Element Flags:
  no flags set

Element Implementation:
  Has change_state() function: gst_element_change_state_func
  Has custom save_thyself() function: gst_element_save_thyself
  Has custom restore_thyself() function: gst_element_restore_thyself

Element has no clocking capabilities.
Element has no indexing capabilities.
Element has no URI handling capabilities.

Pads:
  SRC: 'src'
    Implementation:
      Has custom eventfunc(): gst_pad_event_default
      Has custom queryfunc(): gst_audio_encoder_src_query
        Provides query types:
        (1):    position (Current position)
        (2):    duration (Total duration)
        (8):    convert (Converting between formats)
        (3):    latency (Latency)
      Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
      Has getcapsfunc(): gst_pad_get_fixed_caps_func
      Has acceptcapsfunc(): gst_pad_acceptcaps_default
    Pad Template: 'src'
  SINK: 'sink'
    Implementation:
      Has chainfunc(): gst_audio_encoder_chain
      Has custom eventfunc(): gst_audio_encoder_sink_event
      Has custom queryfunc(): gst_audio_encoder_sink_query
      Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
      Has getcapsfunc(): gst_audio_encoder_sink_getcaps
      Has setcapsfunc(): gst_audio_encoder_sink_setcaps
      Has acceptcapsfunc(): gst_pad_acceptcaps_default
    Pad Template: 'sink'

Element Properties:
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "flacenc0"
  perfect-timestamp   : Favour perfect timestamps over tracking upstream timestamps
                        flags: readable, writable
                        Boolean. Default: true
  mark-granule        : Apply granule semantics to buffer metadata (implies perfect-timestamp)
                        flags: readable
                        Boolean. Default: true
  hard-resync         : Perform clipping and sample flushing upon discontinuity
                        flags: readable, writable
                        Boolean. Default: false
  tolerance           : Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)
                        flags: readable, writable
                        Integer64. Range: 0 - 9223372036854775807 Default: 40000000 
  quality             : Speed versus compression tradeoff
                        flags: readable, writable
                        Enum "GstFlacEncQuality" Default: 5, "5"
                           (0): 0                - 0 - Fastest compression
                           (1): 1                - 1
                           (2): 2                - 2
                           (3): 3                - 3
                           (4): 4                - 4
                           (5): 5                - 5 - Default
                           (6): 6                - 6
                           (7): 7                - 7
                           (8): 8                - 8 - Highest compression
                           (9): 9                - 9 - Insane
  streamable-subset   : true to limit encoder to generating a Subset stream, else false
                        flags: readable, writable
                        Boolean. Default: true
  mid-side-stereo     : Do mid side stereo (only for stereo input)
                        flags: readable, writable
                        Boolean. Default: true
  loose-mid-side-stereo: Loose mid side stereo
                        flags: readable, writable
                        Boolean. Default: false
  blocksize           : Blocksize in samples
                        flags: readable, writable
                        Unsigned Integer. Range: 16 - 65535 Default: 4608 
  max-lpc-order       : Max LPC order; 0 => use only fixed predictors
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 32 Default: 8 
  qlp-coeff-precision : Precision in bits of quantized linear-predictor coefficients; 0 = automatic
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 32 Default: 0 
  qlp-coeff-prec-search: false = use qlp_coeff_precision, true = search around qlp_coeff_precision, take best
                        flags: readable, writable
                        Boolean. Default: false
  escape-coding       : search for escape codes in the entropy coding stage for slightly better compression
                        flags: readable, writable
                        Boolean. Default: false
  exhaustive-model-search: do exhaustive search of LP coefficient quantization (expensive!)
                        flags: readable, writable
                        Boolean. Default: false
  min-residual-partition-order: Min residual partition order (above 4 doesn't usually help much)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 16 Default: 3 
  max-residual-partition-order: Max residual partition order (above 4 doesn't usually help much)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 16 Default: 3 
  rice-parameter-search-dist: 0 = try only calc'd parameter k; else try all [k-dist..k+dist] parameters, use best
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 15 Default: 0 
  padding             : Write a PADDING block with this length in bytes
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0 
  seekpoints          : Add SEEKTABLE metadata (if > 0, number of entries, if < 0, interval in sec)
                        flags: readable, writable
                        Integer. Range: -2147483647 - 2147483647 Default: 0 

JoeLametta added a commit to whipper-team/whipper that referenced this pull request Nov 29, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants