libgit2 / php-git

PHP bindings for libgit2
http://libgit2.github.com
MIT License
563 stars 118 forks source link

First pass on updating run-tests.php #71

Closed ghost closed 10 years ago

ghost commented 10 years ago

Modifies config.m4 so that when configure is executed, it will replace the run-tests.php file generated by phpize with a custom one modifying the notify process.

chobie commented 10 years ago

Nice!

define('QA_SUBMISSION_PAGE', 'http://report.phpgit.org/buildtest/process');

for now, I've setup github bot. he will create an issue under php-git-bot/test when received post data. how about this idea?

Can you change QA_SUBMISSION_PAGE to above URL? https://github.com/php-git-bot/test/issues

I'll change report repo when this merged.

ghost commented 10 years ago

that works! much better then my attempt to post it directly - kept running into authentication issues. I can make some mods on my current code and test and merge into this.

ghost commented 10 years ago

gotta get some sleep, it's 2am here. I'll make some updates in the am to my repo with the new url and the active post via curl and then push them up for review to see what is going wrong.

ghost commented 10 years ago

Ok, this seems to be submitting ok. I had to make a number of changes here and there, let me know if the test I ran this morning submitted properly to your uri - on success it doesn't seem to return anything so I don't have a check for it. Once we are done testing I'll squash everything into a new branch and submit a clean pull request

chobie commented 10 years ago

Ok, this seems to be submitting ok. I had to make a number of changes here and there, let me know if the test I ran this morning submitted properly to your uri - on success it doesn't seem to return anything

I've checked php-git repo but your post didn't find. probably It has something different code from original one? (I've tested with change QA_SUBMISSION_PAGE only and it works)

Now, It will return revision number. But don't care about it. it's really meaningless. (also, original code didn't return result code.) https://github.com/chobie/buildtest-process/blob/master/src/main.go#L118

Btw, why did you add Makefile.global.in? we should rely on installed PHP files as for It might change between other php versions. I see it's good thing to improve reporting system. but this is little bit overkill.

ghost commented 10 years ago

I'll do some more testing over the weekend. run-tests.php is assumed to be executed when you are running 'make tests' after compiling the entire PHP executeable with modules.
run-tests.php in turn converts each phpt file into a php file and some config files and then execs PHP from the command line to run the test.

When it executes the php test file, it disables the php.ini file and loads a custom one which changes the path where modules are located[makes sense since you want to test the modules you built, not the ones already installed].

When it executes run-tests.php it ALSO disables the php.ini and loads a custom one which changes the path where modules are located.

Both sockets, which are used to submit the data, is a PHP module that is build by default - so it's able to submit the results.

However, if you only build a single extension, then you don't have the sockets extension and can't post.

Line 74 of the Makefile is where that was defined....

Basically, my goal at the moment is to set up the build process in php-git to reuse as much of this code as possible and get it to work.

Once I'm done with that, I can submit it back upstream so any project can use it. IE if the only thing we need is to change that one constant, then I'll pull all those defines into a seperate file and then I can modify run-tests so it checks includes either run-tests-contacts.php or run-tests-contacts-local.php

I think with the makefile, I just need to find some way to determine if it is being run for a single extension or the entire PHP process.

In any case, my work schedule is blotchy, so I have chunks of time instead of 9-5 for work and then hobby stuff, so I'll need to fiddle with it later this weekend when I finish my project.

chobie commented 10 years ago

You know I'm a PECL maintainer. I know that. why I didn't add many test cases, just I don't have enough time.

However, if you only build a single extension, then you don't have the sockets extension and can't post.

(it's trivial thing. just correcting) AFAIK fsockopen is defined under basic functions. so almost php environment could post the result without it.

Once I'm done with that, I can submit it back upstream so any project can use it. IE if the only thing we need is to change that one constant, then I'll pull all those defines into a seperate file and then I can modify run-tests so it checks includes either run-tests-contacts.php or run-tests-contacts-local.php

Digress from the main topic: This feature is useful for almost non PECL extensions. So you should discuss this topic in internals ML at first. probably this kind of feature doesn't need RFC process. but I'm not sure what do they think.

Honestly, adding test cases or something PR which improvement php-git directly are appreciated. But regarding indirectly improvements, it's tough to decide good or not good.

In our situation. we don't have enough test case for this extension. So adding test cases is high priority task. but this process only improve statistics. Statistics needs summarize. so this feature might increase non essential issues at this time. I see this feature is useful but little bit overkill for current status.

probably I guess travis will fix half of problems. is it enough for this time, isn't it?

chobie commented 10 years ago

@garyamort Let me clarify this progress. I haven't seen any discussion about this topic on php-internals. (Specifically, add custom reporting feature to run-test.php.)