run clippy on default, all, and allocator features
This way all 4 major configurations are linted.
This commit is contained in:
parent
838550536a
commit
4faf690f57
2 changed files with 99 additions and 59 deletions
40
engage.toml
40
engage.toml
|
@ -78,7 +78,19 @@ RUSTDOCFLAGS="-D warnings" cargo doc \
|
||||||
"""
|
"""
|
||||||
|
|
||||||
[[task]]
|
[[task]]
|
||||||
name = "cargo-clippy"
|
name = "clippy/default"
|
||||||
|
group = "lints"
|
||||||
|
script = """
|
||||||
|
cargo clippy \
|
||||||
|
--workspace \
|
||||||
|
--all-targets \
|
||||||
|
--color=always \
|
||||||
|
-- \
|
||||||
|
-D warnings
|
||||||
|
"""
|
||||||
|
|
||||||
|
[[task]]
|
||||||
|
name = "clippy/all"
|
||||||
group = "lints"
|
group = "lints"
|
||||||
script = """
|
script = """
|
||||||
cargo clippy \
|
cargo clippy \
|
||||||
|
@ -90,6 +102,32 @@ cargo clippy \
|
||||||
-D warnings
|
-D warnings
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
[[task]]
|
||||||
|
name = "clippy/jemalloc"
|
||||||
|
group = "lints"
|
||||||
|
script = """
|
||||||
|
cargo clippy \
|
||||||
|
--workspace \
|
||||||
|
--features jemalloc \
|
||||||
|
--all-targets \
|
||||||
|
--color=always \
|
||||||
|
-- \
|
||||||
|
-D warnings
|
||||||
|
"""
|
||||||
|
|
||||||
|
[[task]]
|
||||||
|
name = "clippy/hardened_malloc"
|
||||||
|
group = "lints"
|
||||||
|
script = """
|
||||||
|
cargo clippy \
|
||||||
|
--workspace \
|
||||||
|
--features hardened_malloc \
|
||||||
|
--all-targets \
|
||||||
|
--color=always \
|
||||||
|
-- \
|
||||||
|
-D warnings
|
||||||
|
"""
|
||||||
|
|
||||||
[[task]]
|
[[task]]
|
||||||
name = "lychee"
|
name = "lychee"
|
||||||
group = "lints"
|
group = "lints"
|
||||||
|
|
|
@ -476,66 +476,68 @@ impl Service {
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use std::path::PathBuf;
|
|
||||||
|
|
||||||
use base64::{engine::general_purpose, Engine as _};
|
|
||||||
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
struct MockedKVDatabase;
|
|
||||||
|
|
||||||
impl Data for MockedKVDatabase {
|
|
||||||
fn create_file_metadata(
|
|
||||||
&self, _sender_user: Option<&str>, mxc: String, width: u32, height: u32, content_disposition: Option<&str>,
|
|
||||||
content_type: Option<&str>,
|
|
||||||
) -> Result<Vec<u8>> {
|
|
||||||
// copied from src/database/key_value/media.rs
|
|
||||||
let mut key = mxc.as_bytes().to_vec();
|
|
||||||
key.push(0xFF);
|
|
||||||
key.extend_from_slice(&width.to_be_bytes());
|
|
||||||
key.extend_from_slice(&height.to_be_bytes());
|
|
||||||
key.push(0xFF);
|
|
||||||
key.extend_from_slice(
|
|
||||||
content_disposition
|
|
||||||
.as_ref()
|
|
||||||
.map(|f| f.as_bytes())
|
|
||||||
.unwrap_or_default(),
|
|
||||||
);
|
|
||||||
key.push(0xFF);
|
|
||||||
key.extend_from_slice(
|
|
||||||
content_type
|
|
||||||
.as_ref()
|
|
||||||
.map(|c| c.as_bytes())
|
|
||||||
.unwrap_or_default(),
|
|
||||||
);
|
|
||||||
|
|
||||||
Ok(key)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn delete_file_mxc(&self, _mxc: String) -> Result<()> { todo!() }
|
|
||||||
|
|
||||||
fn search_mxc_metadata_prefix(&self, _mxc: String) -> Result<Vec<Vec<u8>>> { todo!() }
|
|
||||||
|
|
||||||
fn get_all_media_keys(&self) -> Result<Vec<Vec<u8>>> { todo!() }
|
|
||||||
|
|
||||||
fn search_file_metadata(
|
|
||||||
&self, _mxc: String, _width: u32, _height: u32,
|
|
||||||
) -> Result<(Option<String>, Option<String>, Vec<u8>)> {
|
|
||||||
todo!()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn remove_url_preview(&self, _url: &str) -> Result<()> { todo!() }
|
|
||||||
|
|
||||||
fn set_url_preview(&self, _url: &str, _data: &UrlPreviewData, _timestamp: std::time::Duration) -> Result<()> {
|
|
||||||
todo!()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_url_preview(&self, _url: &str) -> Option<UrlPreviewData> { todo!() }
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test]
|
|
||||||
#[cfg(feature = "sha256_media")]
|
#[cfg(feature = "sha256_media")]
|
||||||
|
#[tokio::test]
|
||||||
async fn long_file_names_works() {
|
async fn long_file_names_works() {
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
use base64::{engine::general_purpose, Engine as _};
|
||||||
|
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
struct MockedKVDatabase;
|
||||||
|
|
||||||
|
impl Data for MockedKVDatabase {
|
||||||
|
fn create_file_metadata(
|
||||||
|
&self, _sender_user: Option<&str>, mxc: String, width: u32, height: u32,
|
||||||
|
content_disposition: Option<&str>, content_type: Option<&str>,
|
||||||
|
) -> Result<Vec<u8>> {
|
||||||
|
// copied from src/database/key_value/media.rs
|
||||||
|
let mut key = mxc.as_bytes().to_vec();
|
||||||
|
key.push(0xFF);
|
||||||
|
key.extend_from_slice(&width.to_be_bytes());
|
||||||
|
key.extend_from_slice(&height.to_be_bytes());
|
||||||
|
key.push(0xFF);
|
||||||
|
key.extend_from_slice(
|
||||||
|
content_disposition
|
||||||
|
.as_ref()
|
||||||
|
.map(|f| f.as_bytes())
|
||||||
|
.unwrap_or_default(),
|
||||||
|
);
|
||||||
|
key.push(0xFF);
|
||||||
|
key.extend_from_slice(
|
||||||
|
content_type
|
||||||
|
.as_ref()
|
||||||
|
.map(|c| c.as_bytes())
|
||||||
|
.unwrap_or_default(),
|
||||||
|
);
|
||||||
|
|
||||||
|
Ok(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn delete_file_mxc(&self, _mxc: String) -> Result<()> { todo!() }
|
||||||
|
|
||||||
|
fn search_mxc_metadata_prefix(&self, _mxc: String) -> Result<Vec<Vec<u8>>> { todo!() }
|
||||||
|
|
||||||
|
fn get_all_media_keys(&self) -> Result<Vec<Vec<u8>>> { todo!() }
|
||||||
|
|
||||||
|
fn search_file_metadata(
|
||||||
|
&self, _mxc: String, _width: u32, _height: u32,
|
||||||
|
) -> Result<(Option<String>, Option<String>, Vec<u8>)> {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn remove_url_preview(&self, _url: &str) -> Result<()> { todo!() }
|
||||||
|
|
||||||
|
fn set_url_preview(
|
||||||
|
&self, _url: &str, _data: &UrlPreviewData, _timestamp: std::time::Duration,
|
||||||
|
) -> Result<()> {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_url_preview(&self, _url: &str) -> Option<UrlPreviewData> { todo!() }
|
||||||
|
}
|
||||||
|
|
||||||
static DB: MockedKVDatabase = MockedKVDatabase;
|
static DB: MockedKVDatabase = MockedKVDatabase;
|
||||||
let media = Service {
|
let media = Service {
|
||||||
db: &DB,
|
db: &DB,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue