Skip to content

Commit 672980e

Browse files
committed
Interned object count tracking and testing
1 parent f358c70 commit 672980e

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/main.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ use std::{
1010
use clap::Parser;
1111
use config::Config;
1212
use ftail::Ftail;
13+
use log::info;
1314
use routes::create_router;
15+
use sarlacc::num_objects_interned;
1416
use webring::Webring;
1517

1618
mod checking;
@@ -79,6 +81,11 @@ async fn main() -> ExitCode {
7981
log::warn!("The webring will not be reloaded when files change.");
8082
}
8183

84+
tokio::spawn(async {
85+
info!("{} objects are interned", num_objects_interned());
86+
tokio::time::sleep(Duration::from_secs(60 * 60)).await;
87+
});
88+
8289
// Start server
8390
let router = create_router(&cfg.webring.static_dir)
8491
.with_state(Arc::clone(&webring))

src/webring.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ mod tests {
581581
use indexmap::IndexMap;
582582
use indoc::indoc;
583583
use pretty_assertions::assert_eq;
584-
use sarlacc::Intern;
584+
use sarlacc::{Intern, num_objects_interned};
585585
use tempfile::{NamedTempFile, TempDir};
586586
use tokio::sync::RwLock as AsyncRwLock;
587587

@@ -673,6 +673,8 @@ mod tests {
673673
let config = make_config();
674674
let webring = Webring::new(&config);
675675

676+
let original_interned_objects = num_objects_interned();
677+
676678
{
677679
let inner = webring.members.read().unwrap();
678680
let mut expected = IndexMap::new();
@@ -835,6 +837,8 @@ mod tests {
835837
expected_random.insert(Uri::from_static("ws://refuse-the-r.ing"));
836838
assert_eq!(found_in_random, expected_random);
837839

840+
assert_eq!(num_objects_interned(), original_interned_objects);
841+
838842
let new_members: IndexMap<String, MemberSpec> = toml::from_str(indoc! { r#"
839843
cynthia = { url = "https://clementine.viridian.page", discord-id = 789, check-level = "none" }
840844
henry = { url = "hrovnyak.gitlab.io", discord-id = 123, check-level = "none" }
@@ -846,6 +850,8 @@ mod tests {
846850

847851
webring.update_members_and_check(&new_members).await;
848852

853+
let original_interned_objects = num_objects_interned();
854+
849855
webring.assert_next("clementine.viridian.page", Ok("http://refuse-the-r.ing"));
850856
webring.assert_next("hrovnyak.gitlab.io", Ok("http://refuse-the-r.ing"));
851857
webring.assert_next("refuse-the-r.ing", Ok("arhan.sh"));
@@ -888,6 +894,8 @@ mod tests {
888894

889895
webring.assert_prev("refuse-the-r.ing", Ok("arhan.sh"));
890896
webring.assert_next("kasad.com", Ok("arhan.sh"));
897+
898+
assert_eq!(num_objects_interned(), original_interned_objects);
891899
}
892900

893901
#[tokio::test]

0 commit comments

Comments
 (0)