<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/79713>79713</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [libc][test] using `llvm-project/libc/test/UnitTest /ErrnoSetterMatcher.h` when applicable
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          SchrodingerZhu
      </td>
    </tr>
</table>

<pre>
    https://github.com/llvm/llvm-project/pull/79573 introduces macros for `errno` handling. 
For unit tests, this can be further improved by using `ErrnoSetterMatcher`(which are clear errno properly to avoid interference with other tests).

For example,
```c++
int max_priority = LIBC_NAMESPACE::sched_get_priority_max(policy);
ASSERT_EQ(max_priority, -1);
ASSERT_EQ(libc_errno, EINVAL);
```
 can be refactored into
```
ASSERT_THAT(LIBC_NAMESPACE::sched_get_priority_max(policy), returns(EQ(-1)),with_errno(EQ(EINVAL)));
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycU09vu0YQ_TTLZRULzxowBw74D2qkJGprt4derGUZs1utWTS7JPG3rwAnjpr28PtJI1lmhjfvPeZJ703bIRYs2bBkF8khaEfFQWlyjelapL_0ENWuuRY6hN4zUTKoGFStCXqoF8pdGFTWvn78PPTk_kYVGFT9YC2DKsuTTHDTBXLNoNDzi1TkPD874iyNkahzLI25ll1jTdcuOIt3LC4rR3zoTOABffAMtjxo47mSHa-RnwcKGombS0_uFRteX_ngTdeOmPsR84AhID3LoDQSS2MG6zdtlOaSkCuLkvi0m_fkeiR75cFx-epMM5JFOiNhp5C_maC5m5bdmOSLmeGdJ77LS2-RwfbWSeO5FIPNWNNT0wV-ke-nnowjE66ciR1_etxsTy_l8_7wa7ndj_6K0iuNzanF8Dl6ush3BuveWaOuDHImbpjl4bD__Xja_8Zg_RV79Oth-X-T1tTqNDsPW75_fPmzfPo6-8l__vthOuFZquAIJ4vcf87e1hx_KY8M1j-pDracMAzUeQbrifGsZWqNH-SD_Ny8C5jrm4yoKUSTi1xGWCyzOBV5ss6TSBerlUqapcrzRqh61STJqsYMoJF5kwkJEJkCYljFS8gAkqVIFkma5eJciyzNhEozyVYxXqSxi_H6F47ayHg_YJHl2VJEVtZo_ZQugNF1BjDmjIopLPXQeraKrfHB3wGCCXZK5PRCsmPJZrw8luzuJ_6vrM3Q1TQG1R-dCUf0gTOovmdhoce4vWnsuOx7a5SsLUYD2R-P-CTVTyHPluKfAAAA__-rdVcp">