Tsantilas Christos wrote:
On Fri, 2008-02-08 at 16:10 +1300, Amos Jeffries wrote:

The "same()" operations used in those tests may be different from a
"same_MD5s()" operation.

Try inserting an empty line in a middle of a function and recompile. You
will get a different MD5. Stripping the executable does not help in my
tests......................

Yes this is true. I tried exactly  the same tests  to evaluate  the
formatter, but they did not work.  I believed that striping the code will
solve the problem but nothing...
In general I was not able to find a safe way to test it. I am just looking
the diffs searching for  bad formated code ...
(Also I must note here that the bazaar repository was very-very  helpful
here, branches/revert/diff etc on local repositories are really fast, but
OK it is an other story :-) )

................... Stripping empty lines fron sources does not help if
the formatter
moves brackets and such, changing the number of lines. Does our
formatter do that?

Yes it does. For example the code:
  void some_function(){
  }
convert to:
  void some_function()
 {
  }

that would be desired behaviour though, yes?

While I am away, the attached file is the set of test cases I have seen enough in the Squid-3 source to note as having bad syntax somehow (probably astyle previously). Along with a few I threw in just because the developer doc page described the syntax specially.

If anyone has other please speak up and we'll get the lot testing properly.

Amos
--
Please use Squid 2.6STABLE17+ or 3.0STABLE1+
There are serious security advisories out on all earlier releases.
/*
  A code-formating tool is wanted fro squid3

  However teh squid sources use a number of syntax constructs which it must be 
capable of handling.

  This file is a dead-code file containing demos of those syntax which are 
known to be formatted badly at times

  It is to be used as the desired control to test formattign output against.
*/

/// structures with bit-fields
struct t1 {
    unsigned int a:1;
    unsigned int b:1;
    unsigned int c:1;
};

/// code-blocks inside definition protection
#if SOMETHING
{
    ;
}
#endif

/// regular function declarations
void
main(int argc, char *argv[])
{
    ;
}

/// template class explicit Instantiation for some compilers
template class ACLStrategised<HttpHeader*>;

/// global template Instances with macro definition
template cbdata_type List<int>::CBDATA_List;

Reply via email to