I have noticed bit weird behavior of symlink() & link() where given an
invalid input like NULL, true, empty string ('') works fine on SuSE 9 64bit
& Fedora core 3 64-bit. Its hard to make things always portable but things
of this sort can be avoided if we tried to do strict type checking of the
inputs that are provided to these PHP functions.

   (a) User works only on platform X and extpects the PHP function to
return
exactly what he would see from (say) the equivalent C function
   (b) User works on multiple platforms and wants his PHP app to behave
exactly the same way across all of them.

I am in favor of (b), but understand how hard it is to. Going forward with
the writing test, i think of following and agree as suggested by Tony. :)
 1. Breaking the tests into smaller ones,
 2. Generalize output only where ever must, because if lot of
generalization is done then we might be missing the errors that would occur,
 3. Write specific tests for non portable behavior.

Moving forward to make testcases better, i would like to know  "Which are
the operating system that i need to test all my testcases before commiting
to php.net".
  What are the Operating system where PHP tests are run ?
  How frequently the tests are run on them ?

Knowing the fact, that its not possible to test testcases on all platforms
before commit, I would like to test them on essential ones and will try n
work on feedback/failure that are noticed when testcases are run on all
different platforms.

with Regards,
Raghubansh, IBM

On 6/28/07, Pierre <[EMAIL PROTECTED]> wrote:

On 6/28/07, Zoe Slattery <[EMAIL PROTECTED]> wrote:
> Derick Rethans wrote:
> > On Thu, 28 Jun 2007, Zoe Slattery wrote:
> >
> >
> >> Hi
> >>
> >> I think there are two user scenarios to consider:
> >>    (a) User works only on platform X and extpects the PHP function to
return
> >> exactly what he would see from (say) the equivalent C function
> >>    (b) User works on multiple platforms and wants his PHP app to
behave
> >> exactly the same way across all of them.
> >>
> >> For writing tests it sounds like we are agreeing to follow scenario
(a) but to
> >> makes changes to the doc so that the user in scenario (b) knows why
his
> >> application might not work.
> >>
> >
> > I'd say that PHP should work like in (b) though - everything should
work
> > the same on every platform.
> >
> For many, or even most, functions that has to be the goal. But for
> filesystem functions I'm not sure that it's always practical, for eample
> chmod() has (as far as I know) no meaning on Windows but is very useful
> on Linux, so we'd have to differentiate here.

You are right, operating systems specific functions cannot be portable.

However we have a couple of issues with some file system (or related
functions) which should be solved soon or later. The one I can think
about are realpath, basename, dirname or pathinfo (for example,
pathinfo should/could be portable (someone reported a bug about it).
recently).

--Pierre




--
with Regards,
Raghubansh

Reply via email to