platform/upstream/gstreamer.git
10 years agovalidate:launcher: Properly handle missing scenarios on the system
Thibault Saunier [Fri, 28 Mar 2014 14:01:12 +0000 (15:01 +0100)]
validate:launcher: Properly handle missing scenarios on the system

10 years agovalidate:launcher: Handle windows path to construct arguments
Thibault Saunier [Fri, 28 Mar 2014 14:00:45 +0000 (15:00 +0100)]
validate:launcher: Handle windows path to construct arguments

10 years agovalidate:launcher: Handle the fact that win32 apps end with .exe
Thibault Saunier [Fri, 28 Mar 2014 14:00:01 +0000 (15:00 +0100)]
validate:launcher: Handle the fact that win32 apps end with .exe

10 years agovalidate: Do not build LD_PRELOAD related code on windows
Thibault Saunier [Fri, 28 Mar 2014 10:30:01 +0000 (11:30 +0100)]
validate: Do not build LD_PRELOAD related code on windows

And do not forget to link against gst-pbutils

10 years agovalidate: Use GModule to 'dlopen' ovverrides
Thibault Saunier [Fri, 28 Mar 2014 09:30:21 +0000 (10:30 +0100)]
validate: Use GModule to 'dlopen' ovverrides

We want gst-validate to be cross platform so use cross platform tools

10 years agovalidate:launcher: Put gst logs in a specific file
Thibault Saunier [Wed, 26 Mar 2014 19:09:12 +0000 (20:09 +0100)]
validate:launcher: Put gst logs in a specific file

+ Make default timeout 30seconds just in case.

10 years agovalidate: launcher: Let the use debug on test fail
Thibault Saunier [Wed, 26 Mar 2014 18:37:44 +0000 (19:37 +0100)]
validate: launcher: Let the use debug on test fail

When a test timeouts, let the user know about the subprocess etc,
and let him possibly connect gdb to it.

10 years agovalidate:launcher: Do not set sample path to letter in ges-launch
Thibault Saunier [Wed, 26 Mar 2014 10:46:48 +0000 (11:46 +0100)]
validate:launcher: Do not set sample path to letter in ges-launch

10 years agovalidate:launcher: Start the server only when actually needed to run filtered tests
Thibault Saunier [Wed, 26 Mar 2014 10:00:32 +0000 (11:00 +0100)]
validate:launcher: Start the server only when actually needed to run filtered tests

10 years agovalidate: Do not query pad caps to check if caps are properly fowarded
Thibault Saunier [Wed, 26 Mar 2014 09:56:58 +0000 (10:56 +0100)]
validate: Do not query pad caps to check if caps are properly fowarded

Query caps will actually get the caps from downstream and those caps
might be different in case there is a Filter in between. What we want is
to check that the caps set on the internally linked pads are correct.

10 years agolauncher: Allow user to set media-files directory
Thibault Saunier [Wed, 19 Mar 2014 17:42:37 +0000 (18:42 +0100)]
launcher: Allow user to set media-files directory

That was broken by 71dee6c3843d02d9d41bbb353cb3fa653190018d

10 years agotools:validate: Start printing position on ASYNC_DONE
Thibault Saunier [Wed, 19 Mar 2014 16:43:43 +0000 (17:43 +0100)]
tools:validate: Start printing position on ASYNC_DONE

As this is what is done in the scenarios.

10 years agolauncher: Don't hardcode option defaults
Edward Hervey [Wed, 19 Mar 2014 17:09:09 +0000 (18:09 +0100)]
launcher: Don't hardcode option defaults

Since they are relative to other options, we need to post-process them
to get the proper value.

Fixes using the launcher with non-default MAIN_DIR

10 years agolauncher: Warn if MAIN_DIR isn't present
Edward Hervey [Wed, 19 Mar 2014 16:13:14 +0000 (17:13 +0100)]
launcher: Warn if MAIN_DIR isn't present

And move blacklist file listing to further down

10 years agolauncher: No need to start a web server when listing tests
Edward Hervey [Wed, 19 Mar 2014 16:04:14 +0000 (17:04 +0100)]
launcher: No need to start a web server when listing tests

It's not needed and makes listing faster.
Also sort the list of tests

10 years agolauncher: --sync: Only update/clone git repo if specified
Edward Hervey [Wed, 19 Mar 2014 16:03:05 +0000 (17:03 +0100)]
launcher: --sync: Only update/clone git repo if specified

Allows:
  * handling non-git-based asset directory
  * working offline
  * working without forcing updates

10 years agovalidate-scenario: Handle non-set env variable
Edward Hervey [Wed, 19 Mar 2014 16:02:03 +0000 (17:02 +0100)]
validate-scenario: Handle non-set env variable

Nothing guarantees it's present/set

10 years agovalidate:scenario: Do not be strict about position after not accurate seek
Thibault Saunier [Wed, 12 Mar 2014 14:23:33 +0000 (15:23 +0100)]
validate:scenario: Do not be strict about position after not accurate seek

10 years agovalidate:scenario: Cleanup output and pass into gst-indent
Thibault Saunier [Wed, 12 Mar 2014 13:24:02 +0000 (14:24 +0100)]
validate:scenario: Cleanup output and pass into gst-indent

10 years agovalidate:scenario: Cleanup output of --list-scenarios
Thibault Saunier [Wed, 12 Mar 2014 11:21:38 +0000 (12:21 +0100)]
validate:scenario: Cleanup output of --list-scenarios

10 years agovalidate: scenario: Load scenario if the name is actually a path to a file
Thibault Saunier [Wed, 12 Mar 2014 11:04:52 +0000 (12:04 +0100)]
validate: scenario: Load scenario if the name is actually a path to a file

11 years agovalidate: tools: Fix path to media folder
Thibault Saunier [Wed, 12 Feb 2014 10:20:06 +0000 (11:20 +0100)]
validate: tools: Fix path to media folder

11 years agovalidate:tools: Clean test between runs when running forever
Thibault Saunier [Wed, 19 Feb 2014 12:07:03 +0000 (13:07 +0100)]
validate:tools: Clean test between runs when running forever

11 years agovalidate: Do not check result furthers if alredy set as passing
Thibault Saunier [Wed, 19 Feb 2014 09:31:15 +0000 (10:31 +0100)]
validate: Do not check result furthers if alredy set as passing

11 years agovalidate:scenario: Pass into gst-indent
Thibault Saunier [Wed, 19 Feb 2014 08:58:22 +0000 (09:58 +0100)]
validate:scenario: Pass into gst-indent

11 years agovalidate: Add actions to the actions list only when they are fully parsed
Thibault Saunier [Wed, 19 Feb 2014 08:56:12 +0000 (09:56 +0100)]
validate: Add actions to the actions list only when they are fully parsed

Otherwize in some corner cases they can be executed before they are actually parsed

11 years agovalidate: Ignore EOS actions that can not be executed
Thibault Saunier [Fri, 24 Jan 2014 16:36:53 +0000 (17:36 +0100)]
validate: Ignore EOS actions that can not be executed

11 years agovalidate: Handle various paths in GST_VALIDATE_SCENARIOS_PATH
Thibault Saunier [Tue, 18 Feb 2014 17:49:00 +0000 (18:49 +0100)]
validate: Handle various paths in GST_VALIDATE_SCENARIOS_PATH

11 years agovalidate:scenario: Make GstValidateAction a GstMiniObject
Thibault Saunier [Tue, 18 Feb 2014 17:15:33 +0000 (18:15 +0100)]
validate:scenario: Make GstValidateAction a GstMiniObject

11 years agovalidate: Move enums and flags deserialization from scenario to utilities
Thibault Saunier [Tue, 18 Feb 2014 17:13:39 +0000 (18:13 +0100)]
validate: Move enums and flags deserialization from scenario to utilities

This way it can be reused.

11 years agovalidate:scenario: Make the pipeline puiblic
Thibault Saunier [Tue, 18 Feb 2014 17:09:37 +0000 (18:09 +0100)]
validate:scenario: Make the pipeline puiblic

This way people can access it from outside the main action implementation.

11 years agovalidate:launcher: Avoid running useless tests
Thibault Saunier [Fri, 14 Feb 2014 15:07:51 +0000 (16:07 +0100)]
validate:launcher: Avoid running useless tests

For example we should not check if duration are equal when transcoding
with scenario set.

Also checking if position is in the seeked segment should be done at
a lower level

11 years agovalidate:launcher: Avoid seeking in output files to parse them
Thibault Saunier [Thu, 13 Feb 2014 14:35:01 +0000 (15:35 +0100)]
validate:launcher: Avoid seeking in output files to parse them

Tihs creates issue and missing content.

11 years agovalidate:launcher: Properly classify test for media check
Thibault Saunier [Thu, 13 Feb 2014 14:34:10 +0000 (15:34 +0100)]
validate:launcher: Properly classify test for media check

11 years agovalidate:launcher: Handle issue with unknown framerate in HLS while transcoding
Thibault Saunier [Thu, 13 Feb 2014 14:33:25 +0000 (15:33 +0100)]
validate:launcher: Handle issue with unknown framerate in HLS while transcoding

11 years agovalidate:tools: Handle cases were EOS does not stop the pipeline in the launcher
Thibault Saunier [Thu, 13 Feb 2014 14:31:58 +0000 (15:31 +0100)]
validate:tools: Handle cases were EOS does not stop the pipeline in the launcher

+ Fix parsing of GstClockTime
+ Avoid using play_15s scenario when not necessary

11 years agovalidate: tools: Use the new scenario discovering fearure in the launcher
Thibault Saunier [Wed, 12 Feb 2014 10:18:14 +0000 (11:18 +0100)]
validate: tools: Use the new scenario discovering fearure in the launcher

11 years agovalidate: Update all scenario to use the new description feature
Thibault Saunier [Tue, 11 Feb 2014 23:28:41 +0000 (00:28 +0100)]
validate: Update all scenario to use the new description feature

+ Fix minor issues in scenario files

11 years agovalidate: Add a way to save details about avalaible scenarios in a file
Thibault Saunier [Tue, 11 Feb 2014 23:28:18 +0000 (00:28 +0100)]
validate: Add a way to save details about avalaible scenarios in a file

11 years agovalidate: Add a way to add a "description" to scenario files
Thibault Saunier [Tue, 11 Feb 2014 22:05:00 +0000 (23:05 +0100)]
validate: Add a way to add a "description" to scenario files

Print details about the descriptions when listing scenario in a KeyFile
format

The description can contain any information about the scenario such as its duration before
EOS, how long the pipeline needs to be so the scenario can be applied...etc

11 years agovalidate: tools: Init gst-validate before listing scenarios
Thibault Saunier [Tue, 11 Feb 2014 22:09:57 +0000 (23:09 +0100)]
validate: tools: Init gst-validate before listing scenarios

And return 0 when only listing scenarios

11 years agovalidate:scenario: Handle backslashes in scenario files
Thibault Saunier [Mon, 10 Feb 2014 15:48:44 +0000 (16:48 +0100)]
validate:scenario: Handle backslashes in scenario files

11 years agovalidate:tools: Rework the way we handle options
Thibault Saunier [Thu, 6 Feb 2014 16:24:30 +0000 (17:24 +0100)]
validate:tools: Rework the way we handle options

Make groups so it is easier for users to find what they look for
By default have 1 single directory where everything is oututed
(main-dir)
Add a way to specify how and where to look for remote assets

11 years agovalidate:tools:launcher: Take into account the position value when rendering
Thibault Saunier [Thu, 6 Feb 2014 16:23:10 +0000 (17:23 +0100)]
validate:tools:launcher: Take into account the position value when rendering

When rendering a files we try to use the size of the outputed file to
determine wether we are timeout or not, but if that fails
try to check the position

11 years agovalidate: Better organize rendered files
Thibault Saunier [Thu, 6 Feb 2014 16:22:36 +0000 (17:22 +0100)]
validate: Better organize rendered files

11 years agovalidate:tools: Use regex for parsing when appropriate
Thibault Saunier [Fri, 31 Jan 2014 11:21:21 +0000 (12:21 +0100)]
validate:tools: Use regex for parsing when appropriate

11 years agovalidate:toold: Add a --output-dir parametter
Thibault Saunier [Thu, 30 Jan 2014 23:23:29 +0000 (00:23 +0100)]
validate:toold: Add a --output-dir parametter

11 years agovalidate:tools: Keep file extension in test classnames
Thibault Saunier [Thu, 30 Jan 2014 23:22:57 +0000 (00:22 +0100)]
validate:tools: Keep file extension in test classnames

+ add test "namespace" in transcoded files

11 years agovalidate:tools: Add a class to back pipeline creation in gst-validate
Thibault Saunier [Thu, 30 Jan 2014 15:59:21 +0000 (16:59 +0100)]
validate:tools: Add a class to back pipeline creation in gst-validate

11 years agovalidate:tools: Define supported protocols in an enum
Thibault Saunier [Thu, 30 Jan 2014 15:58:58 +0000 (16:58 +0100)]
validate:tools: Define supported protocols in an enum

11 years agovalidate: toold: Properly define scenario properties
Thibault Saunier [Thu, 30 Jan 2014 15:56:51 +0000 (16:56 +0100)]
validate: toold: Properly define scenario properties

11 years agovalidate: Rename simple_backward to reverse_playback as this is what it does
Thibault Saunier [Thu, 30 Jan 2014 15:38:37 +0000 (16:38 +0100)]
validate: Rename simple_backward to reverse_playback as this is what it does

11 years agovalidate:tools: Add namespace in apps global variables
Thibault Saunier [Thu, 30 Jan 2014 14:40:21 +0000 (15:40 +0100)]
validate:tools: Add namespace in apps global variables

Avoiding conflicts

11 years agovalidate:tools: Allow user to append paths to medias
Thibault Saunier [Thu, 30 Jan 2014 12:36:04 +0000 (13:36 +0100)]
validate:tools: Allow user to append paths to medias

11 years agovalidate:tools: Make use of the new seek_with_stop scenario
Thibault Saunier [Thu, 30 Jan 2014 12:25:57 +0000 (13:25 +0100)]
validate:tools: Make use of the new seek_with_stop scenario

11 years agovalidate:tools: Implement the logic of validate ouput parsing in the baseclass
Thibault Saunier [Thu, 30 Jan 2014 11:42:25 +0000 (12:42 +0100)]
validate:tools: Implement the logic of validate ouput parsing in the baseclass

+ Add some logic to check that we are mot playing outside wanted segment

11 years agotools:validate: Make default blacklist handled by managers themselves
Thibault Saunier [Thu, 30 Jan 2014 11:20:33 +0000 (12:20 +0100)]
tools:validate: Make default blacklist handled by managers themselves

11 years agovalidate: data: Avoid using seek.stop time when not necessary
Thibault Saunier [Thu, 30 Jan 2014 10:59:54 +0000 (11:59 +0100)]
validate: data: Avoid using seek.stop time when not necessary

Instead send an EOS.
And add a seek_with_stop scenario to test that particular feature

11 years agovalidate:tools: Only discover files with media-check
Thibault Saunier [Wed, 29 Jan 2014 16:39:14 +0000 (17:39 +0100)]
validate:tools: Only discover files with media-check

11 years agovalidate:tools: Add a 'discover-only' option to media-check
Thibault Saunier [Wed, 29 Jan 2014 16:37:57 +0000 (17:37 +0100)]
validate:tools: Add a 'discover-only' option to media-check

11 years agodata: Let playback until the end on last seek of seek_forward if duration < 30s
Thibault Saunier [Mon, 27 Jan 2014 11:20:02 +0000 (12:20 +0100)]
data: Let playback until the end on last seek of seek_forward if duration < 30s

11 years agovalidate: tools: Add a --fatal-error option to the launcher
Thibault Saunier [Fri, 24 Jan 2014 15:38:12 +0000 (16:38 +0100)]
validate: tools: Add a --fatal-error option to the launcher

11 years agovalidate: tools: Implement the notion of hard timeout
Thibault Saunier [Fri, 24 Jan 2014 12:59:56 +0000 (13:59 +0100)]
validate: tools: Implement the notion of hard timeout

Allowing to define timeout that is not relative to the last observed number.

11 years agovalidate: tools: Create a class for scenarios
Thibault Saunier [Fri, 24 Jan 2014 10:41:25 +0000 (11:41 +0100)]
validate: tools: Create a class for scenarios

11 years agovalidate: tools: Change timeouts depending on used protocol
Thibault Saunier [Fri, 24 Jan 2014 10:31:42 +0000 (11:31 +0100)]
validate: tools: Change timeouts depending on used protocol

11 years agovalidate:tools: Implement Buffering support in the various tools
Thibault Saunier [Fri, 24 Jan 2014 10:29:50 +0000 (11:29 +0100)]
validate:tools: Implement Buffering support in the various tools

11 years agovalidate:tools: Blacklist some scenario/protocol combinations
Thibault Saunier [Wed, 22 Jan 2014 23:15:54 +0000 (00:15 +0100)]
validate:tools: Blacklist some scenario/protocol combinations

And add the option for user to easilly blacklist tests

11 years agovalidate: Plug a leak in validate-reporter
Thibault Saunier [Wed, 22 Jan 2014 22:25:09 +0000 (23:25 +0100)]
validate: Plug a leak in validate-reporter

11 years agovalidate:tools: Do not forget to give a ref for reporter's reports
Thibault Saunier [Wed, 22 Jan 2014 22:22:59 +0000 (23:22 +0100)]
validate:tools: Do not forget to give a ref for reporter's reports

Also enhance a bit report 'wording'

11 years agovalidate:tools: Print test result in the terminal after the end of each test
Thibault Saunier [Wed, 15 Jan 2014 15:11:39 +0000 (16:11 +0100)]
validate:tools: Print test result in the terminal after the end of each test

11 years agoscenario: Enhance explanation about seek execution failure
Thibault Saunier [Wed, 15 Jan 2014 15:07:26 +0000 (16:07 +0100)]
scenario: Enhance explanation about seek execution failure

11 years agovalidate:tools: Add an option to run testforever
Thibault Saunier [Tue, 14 Jan 2014 17:07:46 +0000 (18:07 +0100)]
validate:tools: Add an option to run testforever

11 years agovalidate: tools: Cleanup the way we return code in position query
Thibault Saunier [Tue, 14 Jan 2014 17:05:45 +0000 (18:05 +0100)]
validate: tools: Cleanup the way we return code in position query

11 years agovalidate:tools: Use the same semantic for all tests classnames
Thibault Saunier [Tue, 14 Jan 2014 09:32:53 +0000 (10:32 +0100)]
validate:tools: Use the same semantic for all tests classnames

11 years agoscenario: Do not remove GSource if it has never been set
Thibault Saunier [Tue, 14 Jan 2014 09:31:27 +0000 (10:31 +0100)]
scenario: Do not remove GSource if it has never been set

11 years agodata: Add a scenario where we send EOS after 15secs if the duration is > to that
Thibault Saunier [Tue, 14 Jan 2014 09:28:01 +0000 (10:28 +0100)]
data: Add a scenario where we send EOS after 15secs if the duration is > to that

11 years agovalidate:tools: Add support for testing http streams locally
Thibault Saunier [Mon, 13 Jan 2014 16:31:57 +0000 (17:31 +0100)]
validate:tools: Add support for testing http streams locally

11 years agovalidate:tools: Some cleanup in gst-validate test launcher
Thibault Saunier [Mon, 13 Jan 2014 08:47:45 +0000 (09:47 +0100)]
validate:tools: Some cleanup in gst-validate test launcher

11 years agovalidate:tools: Add actuall tests for media checking
Thibault Saunier [Mon, 13 Jan 2014 10:13:02 +0000 (11:13 +0100)]
validate:tools: Add actuall tests for media checking

11 years agovalidate: tools: media-check: When comparing with a file just compare
Thibault Saunier [Mon, 13 Jan 2014 10:07:43 +0000 (11:07 +0100)]
validate: tools: media-check: When comparing with a file just compare

We do not want to know if the file is seekable etc, but in that case we
want to see that the results are stable throughout the various runs

Also make sure to report an understandable error if the media file info
could not be parsed

11 years agovalidate: tools: Do not dot the pipeline every 50ms, it is a bit exessive
Thibault Saunier [Mon, 13 Jan 2014 08:32:14 +0000 (09:32 +0100)]
validate: tools: Do not dot the pipeline every 50ms, it is a bit exessive

11 years agovalidate:tools: Return an exit code != 0 if pipeline can't go to playing
Thibault Saunier [Fri, 10 Jan 2014 17:00:27 +0000 (18:00 +0100)]
validate:tools: Return an exit code != 0 if pipeline can't go to playing

And give some information to the user about why the return code is !=0
everywhere it happens

11 years agovalidate:tools: Add informations about the test in the log files
Thibault Saunier [Fri, 10 Jan 2014 16:21:44 +0000 (17:21 +0100)]
validate:tools: Add informations about the test in the log files

11 years agovalidate:tools: Remove reference to get_backtrace which is not implemented
Thibault Saunier [Fri, 10 Jan 2014 15:56:44 +0000 (16:56 +0100)]
validate:tools: Remove reference to get_backtrace which is not implemented

+ Enhance Message about launched apps

11 years agovalidate:tools: Do not duplicated name in the classname in xunit reports
Thibault Saunier [Fri, 10 Jan 2014 15:46:00 +0000 (16:46 +0100)]
validate:tools: Do not duplicated name in the classname in xunit reports

11 years agovalidate:tools: Do not check if position > duration
Thibault Saunier [Fri, 10 Jan 2014 14:31:01 +0000 (15:31 +0100)]
validate:tools: Do not check if position > duration

This is actually done by the scenario themselve. Instead if it is the
case, we return 0, this way it will timeout if it happens too many times
concecutively

11 years agovalidate:tools: Properly inform the user about the log location when test fails
Thibault Saunier [Fri, 10 Jan 2014 14:30:38 +0000 (15:30 +0100)]
validate:tools: Properly inform the user about the log location when test fails

11 years agovalidate:tools: Add an option to generate .media_info files
Thibault Saunier [Fri, 10 Jan 2014 14:29:31 +0000 (15:29 +0100)]
validate:tools: Add an option to generate .media_info files

So we can properly choose what media should be tested only placing
media_file as needed.

11 years agovalidate:tools: use more scenarios in gst-validate launcher
Thibault Saunier [Fri, 10 Jan 2014 14:27:46 +0000 (15:27 +0100)]
validate:tools: use more scenarios in gst-validate launcher

And ensure that the list does not get mixed up with as we are sharing
"symboles" between all the files

11 years agovalidate:tools: Play the entire file in simple_backward
Thibault Saunier [Fri, 10 Jan 2014 14:26:29 +0000 (15:26 +0100)]
validate:tools: Play the entire file in simple_backward

11 years agovalidate:tools: Fix the fast forward scenario to handle any file duration
Thibault Saunier [Fri, 10 Jan 2014 13:31:24 +0000 (14:31 +0100)]
validate:tools: Fix the fast forward scenario to handle any file duration

11 years agovalidate:tools: Do not try to transcode images
Thibault Saunier [Fri, 10 Jan 2014 11:41:30 +0000 (12:41 +0100)]
validate:tools: Do not try to transcode images

11 years agovalidate: Properly handle images in the media-info helper
Thibault Saunier [Fri, 10 Jan 2014 11:01:43 +0000 (12:01 +0100)]
validate: Properly handle images in the media-info helper

In the case of images we should not check reverse playback, fast
forward etc...

We also should keep the information

11 years agovalidate:tools: Minor cleanups
Thibault Saunier [Fri, 10 Jan 2014 10:36:10 +0000 (11:36 +0100)]
validate:tools: Minor cleanups

11 years agovalidate:tools: Fix classname in gst-launch transcoding tests
Thibault Saunier [Fri, 10 Jan 2014 10:35:47 +0000 (11:35 +0100)]
validate:tools: Fix classname in gst-launch transcoding tests

11 years agovalidate:tools: Properly name the project launcher in the report
Thibault Saunier [Fri, 10 Jan 2014 10:11:10 +0000 (11:11 +0100)]
validate:tools: Properly name the project launcher in the report

11 years agovalidate:tools: Create the rendering directory if it does not exist
Thibault Saunier [Fri, 10 Jan 2014 09:58:54 +0000 (10:58 +0100)]
validate:tools: Create the rendering directory if it does not exist

11 years agovalidate:tools: Add an option to desativate ANSI colors
Thibault Saunier [Fri, 10 Jan 2014 09:27:25 +0000 (10:27 +0100)]
validate:tools: Add an option to desativate ANSI colors

And enhance some debugging output

11 years agovalidate:tools: Remove our dependency to PyGobject
Thibault Saunier [Fri, 10 Jan 2014 09:12:13 +0000 (10:12 +0100)]
validate:tools: Remove our dependency to PyGobject

11 years agovalidate:tools: Do not forget to add Makefile.am and main.py
Thibault Saunier [Thu, 9 Jan 2014 17:43:15 +0000 (18:43 +0100)]
validate:tools: Do not forget to add Makefile.am and main.py