Hi,

On 01/20/2017 02:20 PM, Antonio Maiorano wrote:
Hi Mikael,

Just to be sure, did you build clang-format before running this test?

Yes I did. I compiled a clean trunk, ran the test, got the failure.


Possibly related, one of the tests I added was just removed for being
redundant:
https://reviews.llvm.org/D28943

Aha. I can't say I understand what's going on there, I don't even know how to change the default fallback style or what it is :)

Regards,

Mikael



On Fri, Jan 20, 2017 at 7:50 AM Mikael Holmén
<mikael.hol...@ericsson.com <mailto:mikael.hol...@ericsson.com>> wrote:

    Hi Antonio,



    The test case



    Clang :: Format/style-on-command-line.cpp



    fails for me since this commit.



    test/Format/style-on-command-line.cpp:40:13: error: expected string not

    found in input

    // CHECK10: {{^    int\* i;$}}

                 ^

    <stdin>:1:1: note: scanning from here

    // RUN: clang-format -style="{BasedOnStyle: Google, IndentWidth: 8}"
    %s |

    ^

    <stdin>:61:16: note: possible intended match here

       // CHECK10: {{^    int\* i;$}}

                    ^



    I suppose it works for you... Any idea what the problem can be?



    Regards,

    Mikael


    On 01/20/2017 02:22 AM, Antonio Maiorano via cfe-commits wrote:

    > Author: amaiorano

    > Date: Thu Jan 19 19:22:42 2017

    > New Revision: 292562

    >

    > URL: http://llvm.org/viewvc/llvm-project?rev=292562&view=rev

    > Log:

    > clang-format: fix fallback style set to "none" not always formatting

    >

    > This fixes clang-format not formatting if fallback-style is
    explicitly set to

    > "none", and either a config file is found or YAML is passed in
    without a

    > "BasedOnStyle". With this change, passing "none" in these cases
    will have no

    > affect, and LLVM style will be used as the base style.

    >

    > Differential Revision: https://reviews.llvm.org/D28844

    >

    > Modified:

    >     cfe/trunk/lib/Format/Format.cpp

    >     cfe/trunk/test/Format/style-on-command-line.cpp

    >     cfe/trunk/unittests/Format/FormatTest.cpp

    >

    > Modified: cfe/trunk/lib/Format/Format.cpp

    > URL:
    
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=292562&r1=292561&r2=292562&view=diff

    >
    
==============================================================================

    > --- cfe/trunk/lib/Format/Format.cpp (original)

    > +++ cfe/trunk/lib/Format/Format.cpp Thu Jan 19 19:22:42 2017

    > @@ -1888,8 +1888,8 @@ static FormatStyle::LanguageKind getLang

    >  }

    >

    >  llvm::Expected<FormatStyle> getStyle(StringRef StyleName,
    StringRef FileName,

    > -                                     StringRef FallbackStyle,
    StringRef Code,

    > -                                     vfs::FileSystem *FS) {

    > +                                     StringRef FallbackStyleName,

    > +                                     StringRef Code,
    vfs::FileSystem *FS) {

    >    if (!FS) {

    >      FS = vfs::getRealFileSystem().get();

    >    }

    > @@ -1903,9 +1903,9 @@ llvm::Expected<FormatStyle> getStyle(Str

    >        (Code.contains("\n- (") || Code.contains("\n+ (")))

    >      Style.Language = FormatStyle::LK_ObjC;

    >

    > -  // FIXME: If FallbackStyle is explicitly "none", format is
    disabled.

    > -  if (!getPredefinedStyle(FallbackStyle, Style.Language, &Style))

    > -    return make_string_error("Invalid fallback style \"" +
    FallbackStyle.str());

    > +  FormatStyle FallbackStyle = getNoStyle();

    > +  if (!getPredefinedStyle(FallbackStyleName, Style.Language,
    &FallbackStyle))

    > +    return make_string_error("Invalid fallback style \"" +
    FallbackStyleName);

    >

    >    if (StyleName.startswith("{")) {

    >      // Parse YAML/JSON style from the command line.

    > @@ -1977,7 +1977,7 @@ llvm::Expected<FormatStyle> getStyle(Str

    >      return make_string_error("Configuration file(s) do(es) not
    support " +

    >                               getLanguageName(Style.Language) + ": " +

    >                               UnsuitableConfigFiles);

    > -  return Style;

    > +  return FallbackStyle;

    >  }

    >

    >  } // namespace format

    >

    > Modified: cfe/trunk/test/Format/style-on-command-line.cpp

    > URL:
    
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Format/style-on-command-line.cpp?rev=292562&r1=292561&r2=292562&view=diff

    >
    
==============================================================================

    > --- cfe/trunk/test/Format/style-on-command-line.cpp (original)

    > +++ cfe/trunk/test/Format/style-on-command-line.cpp Thu Jan 19
    19:22:42 2017

    > @@ -11,6 +11,21 @@

    >  // RUN: clang-format -style=file -assume-filename=%T/foo.cpp < %s
    | FileCheck -strict-whitespace -check-prefix=CHECK7 %s

    >  // RUN: clang-format -style="{BasedOnStyle: LLVM,
    PointerBindsToType: true}" %s | FileCheck -strict-whitespace
    -check-prefix=CHECK8 %s

    >  // RUN: clang-format -style="{BasedOnStyle: WebKit,
    PointerBindsToType: false}" %s | FileCheck -strict-whitespace
    -check-prefix=CHECK9 %s

    > +

    > +// Fallback style tests

    > +// RUN: rm %T/_clang-format

    > +// Test no config file found, WebKit fallback style is applied

    > +// RUN: clang-format -style=file -fallback-style=WebKit
    -assume-filename=%T/foo.cpp < %s 2>&1 | FileCheck -strict-whitespace
    -check-prefix=CHECK10 %s

    > +// Test no config file and no fallback style, LLVM style is applied

    > +// RUN: clang-format -style=file -assume-filename=%T/foo.cpp < %s
    2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK11 %s

    > +// Test no config file and fallback style "none", no formatting
    is applied

    > +// RUN: clang-format -style=file -fallback-style=none
    -assume-filename=%T/foo.cpp < %s 2>&1 | FileCheck -strict-whitespace
    -check-prefix=CHECK12 %s

    > +// Test config file with no based style, and fallback style
    "none", formatting is applied

    > +// RUN: printf "IndentWidth: 6\n" > %T/_clang-format

    > +// RUN: clang-format -style=file -fallback-style=none
    -assume-filename=%T/foo.cpp < %s 2>&1 | FileCheck -strict-whitespace
    -check-prefix=CHECK13 %s

    > +// Test yaml with no based style, and fallback style "none", LLVM
    formatting applied

    > +// RUN: clang-format -style="{IndentWidth: 7}"
    -fallback-style=none %s | FileCheck -strict-whitespace
    -check-prefix=CHECK14 %s

    > +

    >  void f() {

    >  // CHECK1: {{^        int\* i;$}}

    >  // CHECK2: {{^       int \*i;$}}

    > @@ -22,6 +37,11 @@ void f() {

    >  // CHECK7: {{^      int\* i;$}}

    >  // CHECK8: {{^  int\* i;$}}

    >  // CHECK9: {{^    int \*i;$}}

    > +// CHECK10: {{^    int\* i;$}}

    > +// CHECK11: {{^  int \*i;$}}

    > +// CHECK12: {{^int\*i;$}}

    > +// CHECK13: {{^      int \*i;$}}

    > +// CHECK14: {{^       int \*i;$}}

    >  int*i;

    >  int j;

    >  }

    >

    > Modified: cfe/trunk/unittests/Format/FormatTest.cpp

    > URL:
    
http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=292562&r1=292561&r2=292562&view=diff

    >
    
==============================================================================

    > --- cfe/trunk/unittests/Format/FormatTest.cpp (original)

    > +++ cfe/trunk/unittests/Format/FormatTest.cpp Thu Jan 19 19:22:42 2017

    > @@ -10978,13 +10978,31 @@ TEST(FormatStyle, GetStyleOfFile) {

    >    ASSERT_TRUE((bool)Style1);

    >    ASSERT_EQ(*Style1, getLLVMStyle());

    >

    > -  // Test 2: fallback to default.

    > +  // Test 2.1: fallback to default.

    >    ASSERT_TRUE(

    >        FS.addFile("/b/test.cpp", 0,
    llvm::MemoryBuffer::getMemBuffer("int i;")));

    >    auto Style2 = getStyle("file", "/b/test.cpp", "Mozilla", "", &FS);

    >    ASSERT_TRUE((bool)Style2);

    >    ASSERT_EQ(*Style2, getMozillaStyle());

    >

    > +  // Test 2.2: no format on 'none' fallback style.

    > +  Style2 = getStyle("file", "/b/test.cpp", "none", "", &FS);

    > +  ASSERT_TRUE((bool)Style2);

    > +  ASSERT_EQ(*Style2, getNoStyle());

    > +

    > +  // Test 2.3: format if config is found with no based style
    while fallback is

    > +  // 'none'.

    > +  ASSERT_TRUE(FS.addFile("/b/.clang-format", 0,

    > +
     llvm::MemoryBuffer::getMemBuffer("IndentWidth: 2")));

    > +  Style2 = getStyle("file", "/b/test.cpp", "none", "", &FS);

    > +  ASSERT_TRUE((bool)Style2);

    > +  ASSERT_EQ(*Style2, getLLVMStyle());

    > +

    > +  // Test 2.4: format if yaml with no based style, while fallback
    is 'none'.

    > +  Style2 = getStyle("{}", "a.h", "none", "", &FS);

    > +  ASSERT_TRUE((bool)Style2);

    > +  ASSERT_EQ(*Style2, getLLVMStyle());

    > +

    >    // Test 3: format file in parent directory.

    >    ASSERT_TRUE(

    >        FS.addFile("/c/.clang-format", 0,

    >

    >

    > _______________________________________________

    > cfe-commits mailing list

    > cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>

    > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

    >


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to